第 08 卷 · 分布式系统、一致性与故障恢复
本卷的定位与入口
先修:网络部分失败、持久日志、并发与事务;先学习时间和故障模型。
本卷按起步、原理、工程和进阶分层;首次进入时按阶段学习路线选取当前需要的章节。
已完成的独立章稿
08.01 系统模型与部分失败沿虚构 m-9 的客户端、网关、权威存储和设备,推导同一超时的不同真实状态、安全性与有条件的活性。08.02 时间与顺序从设备时间戳逆序走到发生在前、Lamport/向量钟与会话序号。08.03 复制的目标与代价用 P/R1/R2 的持久和回放水位推导确认、读旧值与切换取舍。08.04 一致性模型将同一副本观察翻译成会话、因果、顺序一致与线性化合同。08.05 分区与再平衡用 c-a/c-b/c-g 的四桶路由和 b1 迁移评审热点、epoch 与在途事件。08.06 多数与共识用 R1/R2/R3 的 term4→term5 日志推演多数、选举、提交与业务边界。08.07 协调与对象归属以 B 设备重连 G1/G2 的旧 owner 交错讲 lease、CAS、revision、watch 与目标围栏。08.08 跨服务事务用 m-9 已保存却通知失败的需求比较 2PC、Saga、outbox 与状态查询。08.09 可靠任务与调度以 N9 的 W1/W2 接管、提供方结果未知和修复预算推导任务状态。08.10 成员变化与演进用投票配置、b1 路由和事件协议三轴评审快照、混部与回退。08.11 分布式验证用 m-9 发送与授权历史读的三条调用历史评审线性化、故障证据和派生追赶。08.12 完整一致性案例以一套 SQL 权威、元数据协调、异步通知和离线补拉架构汇总正常、故障与迁移。十二章各八节、22 道分层练习均已完成。
IM 主线中的位置
消息身份与顺序、设备重连、节点路由、重复请求、接管、多副本、会话同步与未知结果。
主参照与源码入口见 OpenIM 阅读地图。各章区分公开项目事实与虚构教学规则,在具备先修后对照固定源码。
参考材料怎样进入课程
采用经典资料的知识覆盖与递进思路,结合 Go 和虚构 IM 重新组织。下表对应本卷已完成的十二章;按先修选择章节并完成独立变式。
起步层
| 章节 | 要详细讲解的内容 | IM 练习与验收目标 |
|---|---|---|
| 08.01 系统模型与部分失败 | 节点、链路、暂停、分区;安全性、活性与故障假设。 | 为一次发送超时列出不同真实状态,说明安全性、可用进展和故障假设。 |
| 08.02 时间与顺序 | 物理/单调时钟、漂移、逻辑顺序、因果关系与并发事件。 | 区分消息时间戳、会话顺序与因果关系,用多设备事件图解释同时发生。 |
| 08.03 复制的目标与代价 | 副本、主从、同步/异步、确认点、故障切换与读取滞后。 | 比较消息历史副本的确认点、延迟与切换,说明成本和可能的读取观察。 |
原理层
| 章节 | 要详细讲解的内容 | IM 练习与验收目标 |
|---|---|---|
| 08.04 一致性模型 | 读己之写、单调读、因果、顺序和线性化;事务隔离的不同维度。 | 给发送后查询与多端已读定义观察承诺,区分一致性模型和事务隔离。 |
| 08.05 分区与再平衡 | 按范围/哈希分片、路由、热点、虚拟节点、搬迁与副本。 | 按用户或会话比较分片与路由,推演热点、迁移及在途消息处理。 |
| 08.06 多数与共识 | 多数交集、任期、选举、复制日志、提交与状态机;Raft 思路。 | 用小型复制日志推演任期、多数和提交;解释依赖共识也不能替代消息业务规则。 |
工程层
| 章节 | 要详细讲解的内容 | IM 练习与验收目标 |
|---|---|---|
| 08.07 协调与对象归属 | 租约、锁、watch/revision、CAS、fencing、会话与旧 owner。 | 设计连接或任务归属模型,分析租约、旧owner、代次与接收端拒绝迟到写。 |
| 08.08 跨服务事务 | 两阶段提交的角色与阻塞;Saga、补偿、outbox 和状态查询。 | 比较跨服务保存与通知的提交、补偿和查询方式,明确不可撤销效果。 |
| 08.09 可靠任务与调度 | 请求身份、任务状态、重试、超时、去重与接管。 | 为重试发送或离线任务设计身份、状态、接管与完成记录,逐个注入崩溃点。 |
进阶层
| 章节 | 要详细讲解的内容 | IM 练习与验收目标 |
|---|---|---|
| 08.10 成员变化与演进 | 节点配置、协议兼容、快照安装、数据回填与滚动迁移。 | 分析新旧节点及协议共存时的日志、快照、历史回填与状态解释。 |
| 08.11 分布式验证 | 可控制故障、历史记录、线性化检查思想、模拟与现实差距。 | 为重复、分区和切换记录有界历史,构造违反承诺的反例并说明模拟限制。 |
| 08.12 完整一致性案例 | 领取、协作状态、搜索视图或任务编排;恢复与业务解释。 | 交付可靠发送、离线补拉或多端同步的统一设计,覆盖正常、故障、恢复和迁移。 |
本卷综合任务
设计可靠发送、离线补拉或多端状态同步协议,用故障时间线、观察历史与对账说明保证及限制。
任务由学习者在具备环境时执行。理论推导、参考示例、个人实现和真实运行记录分别保存,故障与反例属于必需部分。
达到的能力
能从故障假设推导保证,能识别时钟、锁、消息和共识各自不能解决的事情。
用解释、最小实现、失败变式、业务取舍四类证据评审。只有目录、术语定义或参考代码通过,不能直接记为掌握本卷。
本卷章节展开规则
每章从一个明确问题开始,先补齐本章所需定义,再推导机制;至少含一条完整执行过程、一个反例、分层练习、反馈与业务迁移。复杂章节拆成多课,不把整卷知识压成一次速读。
当前编写状态和章节深度要求见课程编写与能力验收。