三条阅读路线
这本书有 13 章,但不需要按 1 到 13 顺序读完。下面三条路线对应三类目标;每条路线都标了「必须做」的练习,不做练习等于没读。
1 后端工程师:把一次调用写对
目标:能给团队定一份 RPC 契约,遇到超时、重试、重复、过载时知道先看什么。
| 顺序 | 章节 | 读法 | 必须做 |
|---|---|---|---|
| 1 | 第 1 章 | 精读,画出请求状态机 | 用 curl -w 测一次本地调用的各段延迟 |
| 2 | 第 2 章 | 精读,抄下重试预算与幂等键设计 | 改项目一:把重试次数从 3 改成 10,观察放大倍数 |
| 3 | 第 6 章 | 精读 MVCC 与隔离级别 | 在 SQLite/PostgreSQL 里复现写偏斜 |
| 4 | 第 7 章 | 选读投递语义与 outbox | 用项目一的表实现一个 outbox |
| 5 | 第 8 章 | 选读缓存一致性 | 给项目一加一层 TTL 缓存,制造一次陈旧读 |
| 6 | 第 12 章 | 做项目一 | 跑 --drop-response,证明只扣一次 |
时间:约 12–16 小时,其中项目一 4–6 小时。
2 SRE / 平台工程师:把故障看清楚
目标:能在 5 分钟内判断「过载、依赖慢、重试风暴、分区」中的哪一种,并能设计一次低风险演练。
| 顺序 | 章节 | 读法 | 必须做 |
|---|---|---|---|
| 1 | 第 1 章 | 快读失败分类 | 列出你负责系统的最常见三种失败 |
| 2 | 第 3 章 | 精读复制与分区 | 画出你系统的复制拓扑与故障切换路径 |
| 3 | 第 9 章 | 精读租约与 fencing | 检查现有锁是否带单调 token |
| 4 | 第 10 章 | 精读 trace/指标/日志 | 给一个接口补齐 RED 指标与 trace |
| 5 | 第 11 章 | 精读容量与演练 | 写一份爆炸半径受控的演练剧本 |
| 6 | 第 13 章 | 选做项目二 | 用 --partition 制造一次旧主读 |
时间:约 10–14 小时,其中观测改造 3–5 小时。
3 存储 / 基础设施工程师:把一致性讲清楚
目标:能判断一个系统声称的一致性是否成立,能读懂 Raft 实现的关键不变量。
| 顺序 | 章节 | 读法 | 必须做 |
|---|---|---|---|
| 1 | 第 3 章 | 精读三种复制拓扑 | 用 3 个进程模拟 quorum 读写 |
| 2 | 第 4 章 | 精读历史与线性一致判定 | 给出一段违反线性一致的历史 |
| 3 | 第 5 章 | 精读 Raft 选举/提交/读 | 手推一次分区后的选举 |
| 4 | 第 6 章 | 精读 MVCC 可见性 | 画出两个事务的版本链 |
| 5 | 第 13 章 | 做项目二 | 跑 --partition 并解释旧主为何不能提交 |
| 6 | 第 11 章 | 选读容量 | 估算三副本写入的可用性与延迟 |
时间:约 16–20 小时,其中项目二 6–8 小时。
4 章节依赖图
1 请求/失败
│
┌────┴────┐
▼ ▼
2 RPC 3 复制 ──▶ 4 一致性 ──▶ 5 共识
│ │ │
│ └──────────┬──────────────┘
▼ ▼
6 事务 ◀──────────── 7 队列/流
│ │
└────────┬───────────┘
▼
8 缓存/CDN
│
┌────────┴────────┐
▼ ▼
9 锁/租约 10 观测
│ │
└────────┬────────┘
▼
11 容量/演练
│
┌────────┴────────┐
▼ ▼
12 项目一 13 项目二
实线箭头表示「读后者之前最好先读前者」;虚线不存在——本书没有必须按顺序读的硬依赖,只有概念上的前后关系。第 10 章可以在读完第 2 章后直接读;第 12 章可以在读完第 2、6 章后直接做。
5 三条路线的共同底线
无论选哪条路线,下面五件事必须做,否则这本书对你只是「读过」:
- 亲手制造一次超时但成功,并用幂等键重试;
- 亲手制造一次重复投递,观察副作用是否翻倍;
- 亲手制造一次分区/旧主,观察读到的值;
- 用一条命令判断一次过载(不是看 CPU,而是看队列与延迟);
- 写一份故障演练剧本,包含假设、爆炸半径、回滚和观测点。
不建议的读法
- 只读第 4、5 章,跳过第 1、2 章:你会把一致性当成数学,却不知道业务里的「未知」长什么样。
- 只做项目,跳过第 3、4 章:项目二能跑,但你解释不了为什么旧主必须被 fencing。
- 只看观测章节:没有前面的状态机,trace 上的一条红色 span 你仍然不知道该改哪里。
下一站:能力矩阵——把「读完」变成可自评的 24 项能力。