CAP 是分布式系统设计理论
三点:Consistency(一致性)、Availability(可用性)、Partition Tolerance(分区容错性)
对于一个分布式系统来说,当设计读写操作时,只能同时满足以下三点中的两个
- 一致性(Consistency) : 所有节点访问同一份最新的数据副本
- 可用性(Availability): 非故障的节点在合理的时间内返回合理的响应(不是错误或者超时的响应)。
- 分区容错性(Partition Tolerance) : 分布式系统出现网络分区的时候,仍然能够对外提供服务。
即当发生网络分区(因为某些故障某些节点之间不连通)时,如果我们要继续服务,那么一致性和可用性只能二选一,也就是说有CP架构、AP架构,如果网络分区正常的话(系统在绝大部分时候所处的状态),也就说不需要保证 P 的时候,C 和 A 能够同时保证
BASE 是 CAP 理论中 AP 方案的延伸
三个状态:Basically Available(基本可用)、Soft-state(软状态) 和 Eventually Consistent(最终一致性)
BASE 理论本质上是对 CAP 的延伸和补充,更具体地说,是对 CAP 中 AP 方案的一个补充
- 基本可用:是指分布式系统在出现不可预知故障的时候,允许损失部分可用性。
- 软状态:软状态指允许系统中的数据存在中间状态(CAP 理论中的数据不一致),即允许系统在不同节点的数据副本之间进行数据同步的过程存在延时。
- 最终一致:最终一致性强调的是系统中所有的数据副本,在经过一段时间的同步后,最终能够达到一个一致的状态。(关键)