在分布式系统的设计中,分布式系统有三个指标 CAP,但是没有一种设计可以同时满足 CAP (一致性,可用性,分区容错性 )3个特性,只能满足其中 2 个
CAP
简介
image.png组合
image.pngBase
Base:基本可用(Basically Available)和最终一致性(Eventually consistent)
CAP 规则下 AP 模型 的延伸,AP + Base,实现 服务高可用 + 数据最终一致性
最终一致性:也就是允许节点之间的数据出现短暂的数据不一致情况,但是节点高可用
为什么CAP 不能同时满足
在分布式系统中,节点与节点之间通过网络通信,网络通信必然存在:网络延迟、网络故障;
因此 CAP 中,P (分区容错性)必须存在,�其次,CA 不可能同时存在,因为分布式系统下,数据同步存在延迟,无法实时一致性,存在某一刻不一致,那么数据不一致的情况下:
● 节点要么满足 C,数据不一致,拒绝服务
● 节点要么满足 A,服务可用,但是数据不一致
综上所述:P 必须,C 和 A 只能选一个,也就是 组合: CP、AP
Redis 采用的分布式理论 CAP + Base
redis 采用的是 AP + Base 模型,也就是满足 分区容错性 和 服务高可用 ,保证数据的最终一致性
参考资料
什么是 CAP 理论和 BASE 理论,看这一篇就够了 (360doc.com)
网友评论