CAP 定理和 BASE 理论?

发布于

一、CAP 定理

分布式系统不可能同时满足三个特性,最多满足两个:

  • Consistency(一致性):所有节点同一时刻看到相同数据。
  • Availability(可用性):每个请求都能收到响应(不一定是最新数据)。
  • Partition tolerance(分区容错性):网络分区时系统仍能运行。

二、CP 系统

  • 保证一致性和分区容错,牺牲可用性。
  • 网络分区时拒绝服务。
  • 如 ZooKeeper、HBase、MongoDB(强一致模式)。

三、AP 系统

  • 保证可用性和分区容错,牺牲一致性。
  • 网络分区时仍响应,但可能返回旧数据。
  • 如 Eureka、Cassandra、DynamoDB。

四、为什么 P 必须选

分布式系统网络分区不可避免,所以 P 必须满足,只能在 C 和 A 之间选择。

五、BASE 理论

CAP 的延伸,适合大规模分布式:

  • Basically Available(基本可用):允许损失部分可用性。
  • Soft state(软状态):允许中间状态。
  • Eventually consistent(最终一致):最终达到一致。

六、应用

  • 支付、交易 → 强一致(CP)。
  • 社交、电商详情页 → 最终一致(AP)。