什么是CAP定理?
CAP定理(也称为布式系统一致性三难问题)是分布式系统设计的核心原则,指出任何分布式系统无法同时满足以下三个特性:
- ✅ 一致性(Consistency):所有节点在同一时间看到的数据是一致的
- 🔄 可用性(Availability):系统始终响应请求,不拒绝服务
- 🌍 分区容忍(Partition Tolerance):系统在网络分区时仍能正常运行
该定理由Eric Brewer于1998年提出,后由Seth Gilbert和Nancy Lynch严格证明。CAP定理详解
三者关系与权衡
在分布式系统中,网络分区是必然存在的,因此分区容忍是必须满足的条件。这意味着系统只能在一致性与可用性之间做出选择:
🔄 一致性 vs 可用性
- ☕ 选择一致性:牺牲可用性,确保数据强一致(如Paxos、Raft算法)
- 🚀 选择可用性:牺牲一致性,允许短暂不一致但保证系统响应(如AP系统设计)
实际应用中的选择
不同场景下系统会做出不同权衡:
系统类型 | 优先保证 | 典型场景 |
---|---|---|
数据库 | 一致性 | 账户余额管理 |
缓存系统 | 可用性 | 实时推荐系统 |
分布式存储 | 分区容忍 | 云服务部署 |
扩展阅读
如需深入了解CAP定理在实际系统中的应用,可参考:CAP定理进阶