分布式之_2_CAP理论
前言
Github:https://github.com/HealerJean
1、CAP
理论
CAP
原则又称CAP
定理,指的是在一个分布式系统中,Consistency
(一致性)、Availability
(可用性)、Partition tolerance
(分区容错性),三者不可得兼得。一个分布式系统不可能同时满足C
(一致性)、A
(可用性)和P
(分区容错性)。由于分区容错性在是分布式系统中必须要保证的,因此我们只能在
A
和C
之间进行权衡。在此Zookeeper
保证的是CP
, 而Eureka
则是AP
。
1.1、特性
1.1.1、一致性 C
在分布式系统中的所有数据备份,在同一时刻是否同样的值。(等同于所有节点访问同一份最新的数据副本)
1.1.2、可用性 A
在集群中一部分节点故障后,集群整体是否还能响应客户端的读写请求。(对数据更新具备高可用性)
1.1.3、分区容错性 P
以实际效果而言,分区相当于对通信的时限要求。系统如果不能在时限内达成数据一致性,就意味着发生了分区的情况,必须就当前操作在
C
和A
之间做出选择。
1.2、为什么不可能同时成立
案很简单,因为可能通信失败(即出现分区容错)。
如果保证 G2 的一致性,那么 G1 必须在写操作时,锁定 G2 的读操作和写操作。只有数据同步后,才能重新开放读写。锁定期间,G2 不能读写,没有可用性不。
如果保证 G2 的可用性,那么势必不能锁定 G2,所以一致性不成立。