2026-03-28 09:06:54
CAP 与 PACELC 在系统设计面试中的基础理解
CAP 定理
CAP 定理是分布式系统设计中的一个核心指导原则,它指出分布式系统不可能同时满足以下三个理想属性:
根据 CAP 定理,任何分布式系统都需要从这三个属性中选择两个。实际上,由于在网络分区的情况下,不能容忍分区的系统将被迫放弃一致性或可用性,因此 CAP 定理可以表述为:在存在网络分区的情况下,分布式系统必须选择一致性或可用性。
CAP 定理的证明
我们无法构建一个持续可用、顺序一致且能容忍任何分区故障的通用数据存储。因为为了保持一致,所有节点都应该以相同的顺序看到相同的更新集。但是,如果网络丢失了一个分区,则一个分区中的更新可能无法在客户端读取最新分区后从过期分区读取之前到达其他分区。应对这种可能性的唯一方法是停止为来自过期分区的请求提供服务,但随后该服务将不再 100% 可用。
CAP 定理的局限性
CAP 定理主要关注的是在存在网络分区时,分布式系统应如何在一致性和可用性之间进行选择。然而,它并没有说明在没有网络分区时,分布式系统应如何运作。
PACELC 定理
为了弥补 CAP 定理的这一局限性,PACELC 定理被提出。PACELC 定理指出,在复制数据的系统中:
PACELC 定理的第一部分(PAC)与 CAP 定理相同,而 ELC 是对 CAP 定理的扩展。它假设我们通过复制来保持高可用性,因此当出现故障时,CAP 定理占上风。但如果不是,我们仍然需要考虑复制系统的一致性和延迟之间的权衡。
例子
结论
CAP 和 PACELC 定理为分布式系统在各种分布式特性(如一致性、可用性、分区容限和延迟)之间选择理想的平衡提供了指导。这些定理是系统设计面试中的重要基础,有助于理解如何在不同的分布式系统场景中做出权衡和决策。


以上图示分别展示了 CAP 定理和 PACELC 定理的核心内容,有助于更直观地理解这两个定理在分布式系统设计中的应用。