CAP 定理是分布式系统中的一个基本理论一个分布式系统最多只能同时满足以下三个特性中的两个CConsistency一致性所有节点在同一时刻看到的数据相同。更严格地说读操作能够得到最新写入的数据。AAvailability可用性每个请求都能在有限时间内得到响应不能因为部分节点故障而一直拒绝服务。PPartition Tolerance分区容错性当节点之间的网络发生分区、消息丢失或延迟时系统仍能继续运行。核心结论在真实分布式系统中网络分区是无法完全避免的所以通常必须保证 P。一旦发生网络分区选择C暂停部分请求保证数据一致→CP 系统选择A允许各节点暂时返回不同数据保证服务可用→AP 系统因此CAP 更准确的表述是当网络分区发生时系统无法同时保证强一致性和高可用性。举例假设有两个副本节点客户端 - 节点 A | 网络断开 | 节点 B客户端向节点 A 写入余额 100但 A 与 B 之间网络中断。此时选择一致性 C节点 B 无法确认最新数据因此拒绝或等待请求。数据一致可用性下降典型 CP 思路选择可用性 A节点 B 继续响应请求即使它仍返回旧值。服务可用数据可能暂时不一致典型 AP 思路网络恢复后再通过同步、冲突解决等方式最终达成一致。常见系统分类类型特点常见场景CP优先保证一致性分区时可能拒绝请求分布式锁、支付、库存AP优先保证可用性允许最终一致社交动态、点赞、DNS、购物车CA同时保证一致性和可用性但不考虑网络分区单机数据库或理想网络环境需要注意CA 在真正的分布式环境中通常不现实因为网络分区始终可能发生。常见误区“CAP 只能三选二”并不意味着系统平时只能满足两个特性。更准确地说没有发生网络分区时系统可以同时表现出 C 和 A发生网络分区时必须在 C 和 A 之间做取舍P 不是可以随便放弃的选项。另外CAP 中的 C 通常指强一致性/线性一致性不是泛指所有形式的一致性。