CAP定理
分布式系统的三个指标:
C(一致性)
A(可用性)
P(分区容错性)
Eric Brewer说,分布式系统无法同时满足CAP三个指标,这个结论就叫做CAP定理。
Consitency
用户访问分布式系统中的任意节点,得到的数据必须是一致的
Availability
用户访问分布式系统时,读或写操作总能成功;只能读不能写,或只能写不能读,或两者都不能执行,说明系统弱可用或不可用。
Partition tolerance(一定会有的):
Partition(分区):因为网络故障或其他原因导致分布式系统中的部分节点与其他节点失去连接,形成独立分区。
Tolerance(容错):系统要能容忍网络分区现象,出现分区时,整个系统也要持续对外提供服务
分析
如下图:
要保证一致性:出现了网络分区,node3无法和node1和node2同步,如果现在去写数据就会出现有的节点改了有的节点没有改的情况,所以要保证一致性,就只允许读,不允许写,满足所有节点一致性,但是牺牲了可用性,符合CP。
要保证可用性:此时允许任意读写,满足了可用性,但由于node3无法同步,导致数据不一致,牺牲了一致性,符合AP。
BASE理论
BASE理论是对CAP的一种解决思路,保护三个思想:
其实就是C和A取了一个中间。