什么是CAP定理?

CAP定理(也称为布式系统一致性三难问题)是分布式系统设计的核心原则,指出任何分布式系统无法同时满足以下三个特性:

  • 一致性(Consistency):所有节点在同一时间看到的数据是一致的
  • 🔄 可用性(Availability):系统始终响应请求,不拒绝服务
  • 🌍 分区容忍(Partition Tolerance):系统在网络分区时仍能正常运行

该定理由Eric Brewer于1998年提出,后由Seth Gilbert和Nancy Lynch严格证明。CAP定理详解


三者关系与权衡

在分布式系统中,网络分区是必然存在的,因此分区容忍是必须满足的条件。这意味着系统只能在一致性可用性之间做出选择:

🔄 一致性 vs 可用性

  • ☕ 选择一致性:牺牲可用性,确保数据强一致(如Paxos、Raft算法)
  • 🚀 选择可用性:牺牲一致性,允许短暂不一致但保证系统响应(如AP系统设计)

实际应用中的选择

不同场景下系统会做出不同权衡:

系统类型 优先保证 典型场景
数据库 一致性 账户余额管理
缓存系统 可用性 实时推荐系统
分布式存储 分区容忍 云服务部署
CAP_Theorem

扩展阅读

如需深入了解CAP定理在实际系统中的应用,可参考:CAP定理进阶