CAP定理(Consistency, Availability, Partition tolerance)是分布式系统设计的核心原则之一,由加州大学伯克利分校的Eric Brewer提出。它指出:在分布式系统中,一致性、可用性和分区容错性无法同时满足,最多只能满足其中两项。
三大核心属性 📌
一致性(Consistency)
所有节点在同一时间具有相同的数据视图。例如:银行转账操作需保证账户余额实时同步。可用性(Availability)
每个请求都能收到响应,不会出现服务不可用的情况。例如:电商系统需确保用户能随时下单。分区容错性(Partition tolerance)
系统在网络分区(部分节点无法通信)时仍能正常运行。例如:分布式数据库需容忍网络延迟或中断。
实际应用中的权衡 📈
- CP系统:如传统关系型数据库,优先保证一致性和分区容错,但可能牺牲部分可用性(例如:写操作需等待确认)。
- AP系统:如大型互联网应用,优先保证可用性和分区容错,但可能允许短暂的数据不一致(例如:缓存系统)。
- CA系统:理论上理想状态,但实际分布式环境中难以实现,因为网络分区是必然存在的。