C(Consistence):一致性,集群节点数据的一致。
A(Availability):可用性,集群节点只要存在一个节点就能对外提供服务,那就是可用。
P(Partition tolerance):分区容忍性,分布式系统多个服务节点部署网络中的不同机器上,通过网络连接在一起,那么由于网络不稳定,所以一定会存在分区故障,导致网络分区,形成多个不连通的区域,那么如果某个数据只在一个分区中存在,其他分区就访问不到。然而提高分区容忍性的方法就是将数据复制到不同的分区上,那么数据复制就会导致不一致性,就需要在一致性(C)和可用性(A)之间进行权衡。
Base理论是CAP理论的延伸,它抛弃强一致性,来了个最终一致性。
- 基本可用(Basically Available): 基本可用是指分布式系统在出现故障的时候,允许损失部分可用性,即保证核心可用。电商大促时,为了应对访问量激增,部分用户可能会被引导到降级页面,服务层也可能只提供降级服务。这就是损失部分可用性的体现。
- 软状态(Soft State): 软状态是指允许系统存在中间状态,而该中间状态不会影响系统整体可用性。分布式存储中一般一份数据至少会有三个副本,允许不同节点间副本同步的延时就是软状态的体现。MySQL Replication 的异步复制也是一种体现。
- 最终一致性(Eventual Consistency): 最终一致性是指系统中的所有数据副本经过一定时间后,最终能够达到一致的状态。弱一致性和强一致性相反,最终一致性是弱一致性的一种特殊情况。