CAP定理(也称拜占庭将军问题)是分布式系统领域最重要的理论之一,由计算机科学家埃弗雷特·伯特兰(Leslie Lamport)提出。它揭示了分布式系统在一致性(Consistency)、**可用性(Availability)分区容忍(Partition Tolerance)**三者之间的根本矛盾。

一致性(Consistency)

一致性要求所有节点在任意时刻都能看到相同的数据状态。例如,在金融交易系统中,必须保证所有服务器对账户余额的计算结果一致。

Consistency

可用性(Availability)

可用性意味着系统在任何时刻都能响应请求。例如,电商网站在促销期间必须保持服务不中断。

Availability

分区容忍(Partition Tolerance)

分区容忍指系统在网络分区(如节点断开连接)的情况下仍能正常运行。例如,云服务需要处理跨区域节点通信中断的场景。

Partition_Tolerance

实际应用中的权衡

  • CP系统:如关系型数据库,优先保证一致性和分区容忍,但可能牺牲部分可用性(例如网络故障时拒绝服务)。
  • AP系统:如Cassandra,优先保证可用性和分区容忍,但可能允许短暂的不一致(如缓存延迟)。
  • BP系统:如etcd,通过牺牲部分一致性(如最终一致性)来兼顾可用性和分区容忍。

如需深入了解分布式系统中的共识算法,可参考本站文章:/zh/distributed-systems/consensus_algorithms