CAP 定理:为什么是三选二
2026/8/22大约 2 分钟
分布式事务系列 · 阶段 1 · 理论与协议 · 第 7/49 篇 · 🚧 占位待学
上一篇:《分布式的物理现实:分区、部分失败与时钟》
下一篇:《BASE 定理与一致性谱系》
学习大纲:《分布式事务学习总纲》
状态:待学习。 本文为占位文档:知识点清单、实验与验收标准已就绪,正文待按「先学习、先实验、再撰写」补全。
对应总纲单元:阶段 1 · 单元 1.2
一、本文要解决的问题
分区发生的那一刻,为什么一致性和可用性只能保一个?为什么说「三选二」这个流行说法本身就不严谨?这篇建立整份大纲的评价坐标系——后面每个方案都要在这里过秤。
二、知识点清单
- C(线性一致)、A(每个请求必有响应)、P(分区容忍)的严格含义
- 为什么 P 不可放弃:网络分区不是选择题
- CP 与 AP 在分区瞬间的行为差异:拒绝写入 vs 各自接受
- 站队表:ZooKeeper / etcd / Eureka / Nacos / Redis / MySQL 主从各站哪边、为什么
三、动手实验(学习时必须真跑)
- 亲手做一张 CP/AP 站队表,每个系统写一句站队理由
- 推演:注册中心如果做成 CP,分区时会发生什么(结合服务发现场景)
四、验收标准(全部通过才进入下一篇)
五、写作提示(补正文时遵守)
- 开篇问题驱动;结构走「是什么 → 为什么 → 怎么做 → 背景知识」
- 所有代码、命令、输出必须先在本机跑通再写入,不得杜撰
- 版本口径以总纲环境清单为准(Apache Seata 2.6.0 / MySQL 8.0 / RocketMQ 5.x / Spring Boot 3.x)
- 涉及版本敏感结论时标注出处与时间
本篇完成后,把文首导航块的「🚧 占位待学」去掉,并在总纲处打卡。