这是我参与「第三届青训营 -后端场」笔记创作活动的第五篇笔记。
CAP与BASE理论是分布式系统中绕不开的两大理论。
通常的理解分布式系统,就是一个业务拆分成多个子业务,分布在不同的服务器节点,共同构成的系统称为分布式系统,同一个分布式系统中的服务器节点在空间部署上是可以随意分布的,理论上这些服务节点可以存在任意的位置。
CAP定理
CAP 定理(CAP theorem)指出对于一个分布式系统来说,当设计读写操作时,只能同时满足以下三点中的两个:
- 一致性(Consistency) : 所有节点访问同一份最新的数据副本
- 可用性(Availability) : 非故障的节点在合理的时间内返回合理的响应(不是错误或者超时的响应)。
- 分区容错性(Partition tolerance) : 分布式系统出现网络分区的时候,仍然能够对外提供服务。
而在分布式系统中,P(分区容错性)是前提,在此基础上,只能满足C(一致性)和A(可用性)其中之一。 当然,如果网络分区正常的话,C和A是可以同时满足的。
BASE理论
BASE是Basically Available(基本可用),Soft state(软状态),和 Eventually consistent(最终一致性)三个短语的缩写,BASE是CAP 理论中 AP 方案的延伸:
- 基本可用(Basically Available): 基本可用是指分布式系统在出现不可预知故障的时候,允许损失部分可用性。
- 软状态(Soft state): 允许系统中的数据存在中间状态,并认为该状态不影响系统的整体可用性,即允许系统在多个不同 节点的数据副本之间进行数据同步的过程中存在延迟。
- 最终一致性(Eventually consistent): 最终一致性强调的是系统中所有的数据副本,在经过一段时间的同步后,最终能够达到一个一致的状态。因此最终一致性的本质是需要系统保证最终数据能够达到一致,而不需要实时保证系统数据的强一致性。