Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

三条阅读路线

这本书有 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 三条路线的共同底线

无论选哪条路线,下面五件事必须做,否则这本书对你只是「读过」:

  1. 亲手制造一次超时但成功,并用幂等键重试;
  2. 亲手制造一次重复投递,观察副作用是否翻倍;
  3. 亲手制造一次分区/旧主,观察读到的值;
  4. 用一条命令判断一次过载(不是看 CPU,而是看队列与延迟);
  5. 写一份故障演练剧本,包含假设、爆炸半径、回滚和观测点。
不建议的读法
  • 只读第 4、5 章,跳过第 1、2 章:你会把一致性当成数学,却不知道业务里的「未知」长什么样。
  • 只做项目,跳过第 3、4 章:项目二能跑,但你解释不了为什么旧主必须被 fencing。
  • 只看观测章节:没有前面的状态机,trace 上的一条红色 span 你仍然不知道该改哪里。

下一站:能力矩阵——把「读完」变成可自评的 24 项能力。