zenith-docs 1.0.0 Help

CAP 理论

这篇文档详细描述了 CAP(Consistency、Availability、Partition tolerance)理论。CAP 理论对分布式数据库、云计算服务和大规模分布式系统的设计产生了深远的影响。理解和应用 CAP 理论可以帮助系统设计者更好地理解在设计系统时面临的权衡,尤其是在处理高可用性和数据一致性的需求时。

CAP 理论的历史

这个理论最初是由加州大学伯克利分校的计算机科学家Eric Brewer 在 2000 年的时候提出的一个猜想,即分布式系统中一致性、可用性和分区容错性中,一致性和可用性只能满足其一。

到了 2002 年,这一猜想被麻省理工学院的计算机科学家 Seth Gilbert 和 Nancy Lynch 使用严格的数学推理验证了这个猜想。

CAP 理论的三个指标

CAP 是三个英文单词的缩写, 分别表示一致性、可用性、分区容错性:

In jy x fp i njyto lkln8h8

前面我们已经提到了,在分布式系统中,这三个指标是不可能同时满足的,最多只能满足其中两个。

接着我们来用相信的例子来说明每个指标的具体含义,从一致性说起:

Lhoxt mgl v tv di pj em eso

我们来看绿色区域,在同步数据成功后再去读取数据,它满足了一致性的要求。但是它并不满足可用性的要求,因为在同步期间,读取值是不可用的。

再来看红色区域,虽然不满足一致性,但是即使在同步数据的时候,也可以读取值,虽然读取到的值不是最新的。

网络分区指的是在分布式系统中,不同的节点间网络是不可靠的,经常会发生网络无法访问,进而多个节点间不能正常通信,产生网络分区。网络分区会造成数据不一致或服务不可用。

总结

在实际中,根据 CAP 理论,我们首先要满足分区容错性(P)、然后从可用性(A)和一致性(C)中二选一,所以要么是 AP 要么是 CP。

但是如果要三个全部满足呢?也不是不可以,即舍弃一部分一致性,使用最终一致性(即在一段时间内是不一致的,最终会达成一致)。

Last modified: 06 August 2024