CAP理论是分布式系统的核心定理。
所有节点在同一时间看到相同的数据 读写操作后,所有节点立即同步
系统一直可用 每个请求都能得到响应 但不保证数据是最新的
系统在网络分区时仍能继续运行 节点间通信失败不影响整体
在分布式系统中 最多同时满足两个属性 无法三者兼得
选择:一致性 + 可用性 放弃:分区容错 例子:单机数据库(RDBMS) 适用:网络可靠的环境
选择:一致性 + 分区容错 放弃:可用性 例子:HBase, MongoDB 适用:需要强一致性 表现:分区时可能拒绝请求
选择:可用性 + 分区容错 放弃:强一致性 例子:Cassandra, DynamoDB 适用:需要高可用 特点:最终一致性
要求:强一致性 选择:CP 原因:数据准确性最重要 接受:短暂不可用
要求:高可用 选择:AP 原因:用户体验优先 接受:短暂不一致
混合模式: 订单:CP(准确) 浏览:AP(快速)
基本可用 允许部分失败 降级处理
软状态 允许数据中间状态 随时间变化
最终一致性 经过一段时间后一致 不要求实时一致
强一致性: - 两阶段提交 - Paxos - Raft 最终一致性: - 冲突解决 - 版本向量 - 读写quorum
冗余部署: - 多副本 - 多地域 - 负载均衡 故障转移: - 健康检查 - 自动切换 - 熔断机制
CAP理论指导分布式系统设计,但需要根据实际场景权衡。