
CAP理论将分布式系统的特性抽象为三个指标:一致性(Consistency)、可用性(Availability)、分区容错性(Partition Tolerance)。这三个指标在分布式系统中无法同时满足,只能根据业务需求权衡选择。
CAP理论指出,分布式系统只能同时满足三个指标中的两个。由于分区故障是必然发生的,分区容错性(P)是必须保证的。因此,实际设计时需要在一致性(C)和可用性(A)之间权衡:
分布式系统中,可用性(A)和一致性(C)的权衡可通过以下模型表达:
代码实现(伪代码):
# CP架构示例
def read_cp(key):
if not has_quorum():
raise ConsistencyError("No quorum available")
return get_latest_data(key)
# AP架构示例
def read_ap(key):
return get_local_data(key) # 可能返回旧数据CAP理论为分布式系统设计提供了清晰的权衡框架: