《Head First DSM》中文目录
本书面向需要在多个 Java 服务实例之间共享协同状态的开发者。DSM 将状态标识、类型化集合、在线传播、冲突处理和副本修复集中到统一 Runtime,减少业务团队分别实现这些基础能力的工作。全书以订单履约控制面为贯穿案例,按“识别状态—选择语义—理解复制—接入工程—承担运行责任—验证适用边界”的顺序,把这项价值落实为可运行实验和可复核判断。参考附录用于查询,不替代主线学习。
完成六篇内容后,开发者应能识别适合 DSM 的可修复协同状态,为其选择 Register、Lease 或 CRDT,通过领域适配器接入业务,并用多节点、故障和真实端口证据说明系统已经证明与尚未证明的范围。订单、库存、支付和完整事件历史等权威事实仍由相应的事务或日志系统负责。
阅读入口
- 当前页面:面向人类的中文在线目录。
- Coding Agent 入口:按任务选择版本化 Markdown、参考和策略。
- 中文 PDF:按六篇顺序离线阅读。
- English Human Web:切换到英文在线版。
价值兑现路径
| 学习阶段 | 获得的工程能力 | 减少的重复工作 | 仍由业务或目标环境负责 |
|---|---|---|---|
| 第一篇:识别与启动 | 划分状态责任,建立 Runtime、身份和双节点可见性 | 集合注册、编码与基础传播入口 | 状态适用性和远端依赖时机 |
| 第二篇:选择语义 | 依据不变量选择 Register、Lease 或 CRDT | 冲突裁决、租期管理和状态合并机制 | 权威事实、fencing 和分区后果 |
| 第三篇:复制与修复 | 观察成员、delta、repair、背压和局部成功 | 在线传播、差异检测与副本补差 | 外部副作用、可靠历史和响应语义 |
| 第四篇:业务接入 | 用领域端口、Spring Boot、隔离和测试接入 | 集中装配、失败翻译和分层验证 | 领域合同和生产部署验收 |
| 第五篇:运行责任 | 建立诊断、安全、生命周期和容量合同 | 通用观察面、安全门和热路径基准 | 告警阈值、密钥托管、排空和生产容量 |
| 第六篇:边界验证 | 通过真实端口、federation、反选和毕业项目作出决策 | 可复用的实验与证据链 | 最终采用决定和目标环境上线批准 |
源码与证据约定:正文中的 DSM API、实现、测试和官方示例均链接到 GitHub 上经过审阅的固定 revision,链接不会随默认分支漂移。命令中的
submodule/dsm与submodule/dsm-examples是本书 checkout 内的运行路径;本书自带的练习资产继续使用仓库内相对路径。
开始之前
Arc 1:先看见共享状态
| 章 | 内容 |
|---|---|
| 1 | DSM 的职责与适用边界 |
| 2 | 启动第一个 Runtime |
| 3 | 共享状态的稳定身份 |
| 4 | 从本地提交到远端可见 |
Arc 2:选择正确的一致性语义
| 章 | 内容 |
|---|---|
| 5 | Register:当前值与陈旧读取 |
| 6 | Register 的并发写入与确定性收敛 |
| 7 | Lease:有期限的所有权 |
| 8 | CRDT:多节点本地更新与合并 |
| 9 | 从业务不变量选择集合 |
Arc 3:理解复制、分区与修复
| 章 | 内容 |
|---|---|
| 10 | 成员视图与稳定性判断 |
| 11 | 一次写入的远端传播路径 |
| 12 | 基于摘要的差异检测与副本修复 |
| 13 | ChangeStream 的背压与溢出策略 |
| 14 | 收敛边界与已经发生的业务响应 |
Arc 4:接入真实业务工程
| 章 | 内容 |
|---|---|
| 15 | 通过领域适配器隔离 DSM 细节 |
| 16 | 使用 Spring Boot 装配 Runtime |
| 17 | 通信域与集合域的隔离 |
| 18 | 多层测试证据的适用范围 |
Arc 5:让系统可以运行和排查
| 章 | 内容 |
|---|---|
| 19 | 通过可观测信号定位副本差异 |
| 20 | 消息安全与收敛前提 |
| 21 | Runtime 生命周期与流量准入 |
| 22 | 从微基准到生产容量证据 |
Arc 6:证明边界并完成毕业项目
| 章 | 内容 |
|---|---|
| 23 | 通过真实端口观察一致性边界 |
| 24 | 跨集群传播的集合语义 |
| 25 | 识别不适合 DSM 的状态 |
| 26 | 交付可复核的履约控制面 |
附录
完整目标地图见 编辑控制面。