CAP和BASE理论
CAP理论和BASE理论是分布式系统的“基石”,论述了分布式系统的能力边界。
CAP理论
CAP理论指出对于一个分布式数据存储系统中,不可能同时满足以下三点:
- 一致性(Consistency)=> 每一次请求都获取最新的写入或者错误(等同于所有节点访问同一份数据的副本);
- 可用性(Availablility)=> 每次请求都能获取一个非错误返回,结果并不一定需要是最新的;
- 分区容错性(Partition tolerance)=> 在网络发生错误时,系统依然可以使用(节点依然可用);
BASE理论
BASE理论是Basically Available(基本可用),Soft State(软状态)和Eventually Consistent(最终一致性)三个短语的缩写。
其核心思想是:
既是无法做到强一致性(Strong consistency),但每个应用都可以根据自身的业务特点,采用适当的方式来使系统达到最终一致性(Eventual consistency)。
主要内容为:
-
基本可用(Basically Available)
基本可用是指分布式系统在出现故障的时候,允许损失部分可用性,即保证核心可用。
电商大促时,为了应对访问量激增,部分用户可能会被引导到降级页面,服务层也可能只提供降级服务。这就是损失部分可用性的体现。
-
软状态(Soft State)
软状态是指允许系统存在中间状态,而该中间状态不会影响系统整体可用性。分布式存储中一般一份数据至少会有三个副本,允许不同节点间副本同步的延时就是软状态的体现。mysql replication的异步复制也是一种体现。
-
最终一致性(Eventually Consistent)
最终一致性是指系统中的所有数据副本经过一定时间后,最终能够达到一致的状态。弱一致性和强一致性相反,最终一致性是弱一致性的一种特殊情况。