C 表示一致性,A 表示可用性,P 表示分区容错性。分布式系统是通过网络联通的,但是由于一些故障可能导致各节点之间联不通了,数据分布在不同的节点上,这就叫出现了网络分区。当某份数据只保存在某一个节点且那个节点又挂掉了的时候,那个整个系统就不可用了,这时就没有容错性,这种情况是要避免的,因此只能把相同的数据部署在多个节点上,而这又会带来一致性的问题。要保证各节点的数据完全一致,那么写数据时就得让所有节点都成功了才算成功,这又会带来可用性的问题。所以并不是 CAP 只能 CP 或 AP,只是当网络发生分区时,分区容错性是一定要满足的,不能出现分区了整个服务就不可用了,所以就得在一致性和可用性之间做取舍。
4. 什么是 base 理论?
base 理论是基本可用、软状态和最终一致性三个单词的缩写,也就是分布式系统出现故障的时候,允许损失部分的可用性,多个节点的数据同步允许存在一定的延时,即允许软状态存在,通过一定时间的同步后,最终能够达到一致性,这是对一致性和可用性权衡的结果。