分布式系统CAP定理:为什么不能三角全占
时间:2026-05-30 22:31:40 阅读:27
CAP 定理是分布式系统的基础理论,很多面试也爱考。但实际开发中怎么用它做决策,比背定义更重要。
定理的核心
CAP 说分布式系统不可能同时满足三个特性:一致性(Consistency)、可用性(Availability)、分区容错性(Partition Tolerance)。最多同时满足两个。网络分区一定会发生(比如机房断网),所以 P 必须选,实际上就是在 C 和 A 之间做权衡。CP 系统:保一致牺牲可用
发生网络分区时,CP 系统选择停止服务来保证数据一致。典型例子是 Zookeeper:节点之间连不上时,少数派节点不再提供服务。适合对数据一致性要求极高的场景,比如配置管理、分布式锁。AP 系统:保可用牺牲一致
发生网络分区时,AP 系统选择继续服务,但数据可能不一致,等网络恢复后再同步。DNS 是典型的 AP 系统——你改了域名解析记录,全球生效需要时间,但不会因为某个 DNS 服务器连不上就查不到域名。适合用户端体验优先的场景,比如商品展示、社交动态。实际不这么绝对
现实中没有纯 CP 或纯 AP 系统,都是在这条线上找平衡点。比如数据库主从同步用的是最终一致性——主库写入后立即返回,从库异步同步。短时间内的不一致可以接受(秒级),但如果持续几分钟不一样那就出问题了。



提供云计算服务