上QQ阅读APP看书,第一时间看更新
4.4.1 定义
CAP原理:分布式系统无法同时确保一致性(Consistency)、可用性(Availability)和分区容忍性(Partition),设计中往往需要弱化对某个特性的需求。
一致性、可用性和分区容忍性的具体含义如下。
●一致性:任何事务应该都是原子的,所有副本上的状态都是事务成功提交后的结果,并保持强一致。
●可用性:系统(非失败节点)能在有限时间内完成对操作请求的应答。
●分区容忍性:系统中的网络可能发生分区故障(成为多个子网,甚至出现节点上线和下线),即节点之间的通信无法保障;而网络故障不应该影响到系统正常服务。
CAP原理认为,分布式系统最多只能保证以上3项特性中的两项特性。
比较直观地理解,当网络可能出现分区时,系统是无法同时保证一致性和可用性的。要么节点收到请求后,因为没有得到其他节点的确认而不应答(牺牲可用性);要么节点只能应答非一致的结果(牺牲一致性)。
由于大部分时候网络被认为是可靠的,因此系统可以提供一致可靠的服务;当网络不可靠时,系统要么牺牲掉一致性(多数场景下),要么牺牲掉可用性。
注意
网络分区是可能存在的,出现分区情况后很可能会导致“脑裂”现象。