Skip to content
0

分布式系统理论基础

CAP理论

CAP理论是分布式系统设计中的一个重要理论,它指出在一个分布式系统中,无法同时完全满足以下三个核心需求:一致性(Consistency)、可用性(Availability)和分区容错性(Partition Tolerance),系统设计者必须在这三者之间做出权衡。

  • 一致性:分布式系统中的所有数据副本在同一时刻是否一致。即访问所有数据副本的节点,是否都会返回一样的结果。
    • 强一致性:当一个写操作完成之后,后续的读操作总是能够读取到最新的数据。
    • 弱一致性:系统在写操作后,可能需要经过一段时间延迟才能保证所有节点上的数据一致。
    • 最终一致性:系统在经过一段时间后,所有节点上的数据最终会达到一致状态。
  • 可用性:集群中一部分节点发生故障后,集群整体是否还能响应客户端的读写请求。
  • 分区容错性:指分布式系统在遇到任意网络故障时,仍然能够继续运行的能力。

由于在现代分布式系统中,网络故障是不可避免的,所以CAP理论的权衡主要集中在一致性和可用性。

  • CP系统:在网络分区的情况下,优先保证数据的一致性,可能会牺牲部分可用性。
  • AP系统:在网络分区的情况下,优先保证系统的可用性,可能会牺牲部分数据的一致性。

BASE理论

  • 基本可用【Basically Available】:分布式系统在出现故障时,允许损失部分可用性,即保证核心可用。
  • 软状态【Soft State】:允许系统存在中间状态,而该中间状态不会影响系统整体可用性。这里的中间状态就是 CAP 理论中的数据不一致。
  • 最终一致性【Eventual Consistency】:系统中的所有数据副本经过一定时间后,最终能够达到一致的状态。

ACID 是数据库事务完整性的理论,CAP 是分布式系统设计理论,BASE 是 CAP 理论中 AP 方案的延伸。

分布式一致性算法

一致性哈希算法