DSM 0.1.2 · 中文版

Head First DSM

从共享状态到可验证的一致性边界

26 章 · 6 条学习弧 · 1 个贯穿全书的订单履约控制面

LEARNING PATH

六次递进,把“会调用”推进到“能证明”

ARC 1 · 第 1–4 章先看见共享状态先分清业务事实、协同状态与事件历史。 ARC 2 · 第 5–9 章选择正确的一致性语义从不变量出发选择 Register、Lease 或 CRDT。 ARC 3 · 第 10–14 章理解复制、分区与修复看清传播、repair 与响应边界。 ARC 4 · 第 15–18 章接入真实业务工程把 DSM 收进领域端口、装配与测试边界。 ARC 5 · 第 19–22 章让系统可以运行和排查把诊断、安全、生命周期与容量写成合同。 ARC 6 · 第 23–26 章证明边界并完成毕业项目用真实端口、反选与证据链完成交付。

《Head First DSM》中文目录

本书面向需要在多个 Java 服务实例之间共享协同状态的开发者。DSM 将状态标识、类型化集合、在线传播、冲突处理和副本修复集中到统一 Runtime,减少业务团队分别实现这些基础能力的工作。全书以订单履约控制面为贯穿案例,按“识别状态—选择语义—理解复制—接入工程—承担运行责任—验证适用边界”的顺序,把这项价值落实为可运行实验和可复核判断。参考附录用于查询,不替代主线学习。

完成六篇内容后,开发者应能识别适合 DSM 的可修复协同状态,为其选择 Register、Lease 或 CRDT,通过领域适配器接入业务,并用多节点、故障和真实端口证据说明系统已经证明与尚未证明的范围。订单、库存、支付和完整事件历史等权威事实仍由相应的事务或日志系统负责。

阅读入口

价值兑现路径

学习阶段 获得的工程能力 减少的重复工作 仍由业务或目标环境负责
第一篇:识别与启动 划分状态责任,建立 Runtime、身份和双节点可见性 集合注册、编码与基础传播入口 状态适用性和远端依赖时机
第二篇:选择语义 依据不变量选择 Register、Lease 或 CRDT 冲突裁决、租期管理和状态合并机制 权威事实、fencing 和分区后果
第三篇:复制与修复 观察成员、delta、repair、背压和局部成功 在线传播、差异检测与副本补差 外部副作用、可靠历史和响应语义
第四篇:业务接入 用领域端口、Spring Boot、隔离和测试接入 集中装配、失败翻译和分层验证 领域合同和生产部署验收
第五篇:运行责任 建立诊断、安全、生命周期和容量合同 通用观察面、安全门和热路径基准 告警阈值、密钥托管、排空和生产容量
第六篇:边界验证 通过真实端口、federation、反选和毕业项目作出决策 可复用的实验与证据链 最终采用决定和目标环境上线批准

源码与证据约定:正文中的 DSM API、实现、测试和官方示例均链接到 GitHub 上经过审阅的固定 revision,链接不会随默认分支漂移。命令中的 submodule/dsmsubmodule/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 多层测试证据的适用范围

第四篇回顾:从集合 API 到业务工程

Arc 5:让系统可以运行和排查

内容
19 通过可观测信号定位副本差异
20 消息安全与收敛前提
21 Runtime 生命周期与流量准入
22 从微基准到生产容量证据

第五篇回顾:把运行责任写成合同

Arc 6:证明边界并完成毕业项目

内容
23 通过真实端口观察一致性边界
24 跨集群传播的集合语义
25 识别不适合 DSM 的状态
26 交付可复核的履约控制面

第六篇回顾:用边界和证据毕业

附录

完整目标地图见 编辑控制面