《后端架构设计》是一套四卷本:卷一《架构基础与边界》、卷二《高性能与高可用》、卷三《分布式与数据一致性》、卷四《演进与治理》。本页是卷四的完整目录,共 45 篇。
卷三把一致性机制做成了可运行组件,也留下了一张交接表:真实共识性能、跨单元冲突率、演练覆盖和组织成本都还没有答案。卷四接着处理这些“机制之外”的变量:拆不拆、怎么连、怎么改、怎么发、谁来付。它不重新讲 Raft 和 Saga,而是把拆分、契约、发现、网关、配置、观测、SLO、混沌、发布、租户、平台与成本做成可检查的工程动作。
全书概览
| 项目 | 内容 |
|---|---|
| 书稿 | 《后端架构设计·演进与治理》 |
| 篇数 | 45 篇(13 章 × 3 节 + 序、前言、目录、附录 A–C) |
| 主线项目 | arch-lab:Go 1.26 订单交易系统 |
| 技术栈 | Go 1.26.0 主线;Java 21 结构对照 |
| 运行级别 | L1 为主;第 1、4、7、9、13 章至少各一个 L2 进程内场景;L3/L4 只讨论,不承诺实跑 |
| 阅读方式 | 从目录与学习路径 进入顺序通读,或按下方路径跳读 |
| 上级专题 | 书稿专题 |
| 相关专题 | 架构设计 · 分布式系统 · DevOps |
三条阅读路径
路径 A:顺序通读(约 36 小时)
按 13 章顺序读。第 1–4 章确定拆分边界、契约、发现与网关;第 5–7 章建立配置、遥测与 SLO 的运行时治理;第 8–10 章处理混沌、发布与租户安全;第 11–13 章落到平台、成本与综合实验。
路径 B:拆分与发布驱动(约 12 小时)
手上正有一次单体拆服务或发布经常回滚时,按这个顺序读:1.1 → 1.2 → 1.3 → 2.2 → 2.3 → 4.3 → 7.2 → 9.2 → 9.3 → 13.1 → 13.2。先证明拆分收益,再补契约与门禁,最后用金丝雀和 expand-contract 完成发布。
路径 C:线上治理与成本驱动(约 7 小时)
遇到告警、开关或账单问题时,先读 7.1 统一 SLI 口径,再按症状跳转:开关债读 5.2,排障读 6.1 与 6.3,演练读 8.1 与 8.2,跨租户读 10.1 与 10.2,账单读 12.1 与 12.3。
全书目录
前置与附录
| 篇 | 文章 | 核心内容 |
|---|---|---|
| 序 | 序 | 三个治理事故、卷三交接、四个立场与四卷分工 |
| 前言 | 前言 | 卷四新增组件、L1–L4、代码标记、G1/G2/G3 场景与数字口径 |
| 目录 | 目录与学习路径 | 13 章依赖图、三条路径、症状表、章节速览与读完标准 |
| 附 A | 附录 A 演进与治理速查 | 拆分、契约、SLO、开关、发布与成本的判据表 |
| 附 B | 附录 B Go/Java 21 治理组件对照 | 并发、配置、指标、限流与发布工具的结构差异 |
| 附 C | 附录 C 上线治理检查清单 | 六类治理动作的检查项、证据与退出条件 |
第一部分:边界与通信(第 1–4 章)
| 节 | 文章 | 核心内容 |
|---|---|---|
| 1.1 | 微服务拆分不是默认答案:三个触发条件 | 三个拆分触发条件、反例与就绪度评分卡 |
| 1.2 | 拆分粒度:业务能力、数据所有权与变更频率 | 依赖图、不稳定度与拆分粒度判据 |
| 1.3 | 订单域的一次拆分演练:边界、共享数据与回退 | 订单域两服务拆分:共享数据、事件化与回退 |
| 2.1 | 同步调用与异步事件:组合而不是二选一 | 同步 RPC 与异步事件的组合决策矩阵 |
| 2.2 | 契约版本演进:向后兼容、弃用与消费者驱动 | schema 兼容性检查与版本演进 |
| 2.3 | 契约变更门禁:schema 校验与跨服务兼容测试 | 消费者驱动契约与 CI 门禁 |
| 3.1 | 服务注册、健康检查与实例生命周期 | 注册表、TTL 租约与健康状态 |
| 3.2 | 客户端负载均衡:算法、局部性与重试放大 | P2C、局部性与重试预算 |
| 3.3 | 服务网格的收益边界:Sidecar、xDS 与运维成本 | Sidecar/xDS 配置冲突与网格成本 |
| 4.1 | 边缘网关:路由、认证与租户限流 | 路由、认证与租户限流 |
| 4.2 | BFF:按端聚合与契约裁剪 | BFF 聚合、字段裁剪与部分失败 |
| 4.3 | 网关失败模式:超时预算、连接池与级联故障 | 超时预算、连接池与级联故障 |
第二部分:运行时治理(第 5–7 章)
| 节 | 文章 | 核心内容 |
|---|---|---|
| 5.1 | 配置分层、版本与灰度发布 | 配置分层、版本与灰度 |
| 5.2 | 功能开关:类型、生命周期与开关债 | 开关类型、生命周期与开关债 |
| 5.3 | 动态配置一致性:推送、轮询与回滚 | 推送/轮询、版本水位与回滚 |
| 6.1 | 日志、指标与追踪的统一语义约定 | 日志、指标与追踪的统一语义约定 |
| 6.2 | 分布式追踪:采样、上下文传播与成本 | 采样、上下文传播与成本 |
| 6.3 | 从信号到诊断:一次跨服务排障复盘 | 信号关联与跨服务排障 |
| 7.1 | SLI 定义:指标、窗口与用户视角 | SLI 定义、窗口与用户视角 |
| 7.2 | 错误预算:发布门禁与冻结策略 | 错误预算、燃尽率与发布冻结 |
| 7.3 | 依赖级联:多服务 SLO 的预算分配 | 依赖级联与预算分配 |
第三部分:变更与风险(第 8–10 章)
| 节 | 文章 | 核心内容 |
|---|---|---|
| 8.1 | 故障注入的层次:进程、网络、依赖与区域 | 进程/网络/依赖/区域四层注入 |
| 8.2 | 演练设计:稳态假设、爆炸半径与止损 | 稳态假设、爆炸半径与止损 |
| 8.3 | 从演练到修复:游戏日、回归与证据留存 | 游戏日、回归与证据留存 |
| 9.1 | 制品、环境与不可变部署 | 制品摘要、环境与不可变部署 |
| 9.2 | 渐进式发布:金丝雀、流量比例与自动回滚 | 金丝雀状态机与自动回滚 |
| 9.3 | 数据库变更与发布协同:expand-contract | expand-contract 与发布协同 |
| 10.1 | 租户模型:隔离级别与数据分区 | 租户隔离级别与数据分区 |
| 10.2 | 服务间身份:认证、授权与最小权限 | 服务身份、授权与最小权限 |
| 10.3 | 密钥、审计与合规边界 | 密钥轮换、审计与合规边界 |
第四部分:组织、成本与综合(第 11–13 章)
| 节 | 文章 | 核心内容 |
|---|---|---|
| 11.1 | 平台即产品:能力边界与用户旅程 | 平台能力边界与用户旅程 |
| 11.2 | 黄金路径与自助服务:从工单到模板 | 黄金路径、模板与自助服务 |
| 11.3 | 平台度量:采纳率、交付效率与反悔成本 | 采纳率、交付效率与反悔成本 |
| 12.1 | 成本归因:标签、分摊与单位经济 | 标签归因、分摊与单位经济 |
| 12.2 | 容量与成本:预留、弹性与闲置回收 | 预留/弹性/闲置的成本模型 |
| 12.3 | 成本治理机制:预算、评审与责任到团队 | 预算、评审与责任到团队 |
| 13.1 | arch-lab 从模块化单体到两服务 | arch-lab 两服务拆分端到端 |
| 13.2 | 一次带 SLO 门禁与混沌演练的发布 | SLO 门禁 + 混沌演练的发布 |
| 13.3 | 四卷收口:架构、性能、一致性与治理的路线图 | 四卷路线图与未证明项交接 |
与站内专题的关系
卷四与 架构设计 、分布式系统 和 DevOps 是“书稿 + 专题”的关系。专题文章负责概念地图和工具全貌,卷四负责订单系统里的判据、状态机与可运行检查。例如:
- 拆分与演进:模块化单体 与 绞杀者模式 提供背景,卷四第 1 章给出触发条件与拆分演练。
- 契约与通信:API 契约设计 与 微服务通信模式 提供选型,卷四第 2 章给出 schema 兼容检查与消费者门禁。
- 发现与网关:服务发现 与 API 网关与 BFF 提供拓扑,卷四第 3–4 章给出生命周期、重试预算与级联模型。
- 观测与 SLO:分布式追踪实践 与 SLO 与错误预算 提供工具,卷四第 6–7 章给出语义约定、采样成本与发布门禁。
- 混沌与发布:混沌工程 与 部署策略 提供方法,卷四第 8–9 章给出演练状态机、金丝雀与 expand-contract。
- 租户、平台与成本:多租户架构 、平台工程 与 成本优化 提供全景,卷四第 10–12 章给出策略求值、黄金路径与归因模型。
arch-lab 在卷四新增什么
卷四不重画领域边界,只在 internal/platform/ 与 internal/evolve/ 下增加治理能力:
| 组 | 新增组件 | 对应章节 |
|---|---|---|
| 拆分 | 就绪度评分卡、依赖图、两服务路由 | 第 1 章 |
| 契约 | schema 兼容检查、消费者契约 | 第 2 章 |
| 发现 | 注册表、P2C、xDS 配置检查 | 第 3 章 |
| 网关 | 边缘路由、BFF、级联模拟 | 第 4 章 |
| 配置 | 分层配置、开关、动态同步 | 第 5 章 |
| 观测 | 语义约定、采样、诊断排序 | 第 6 章 |
| SLO | SLI 窗口、错误预算、发布门禁 | 第 7 章 |
| 混沌 | 分层注入、演练状态机、游戏日 | 第 8 章 |
| 发布 | 制品校验、金丝雀、expand-contract | 第 9 章 |
| 租户 | 隔离策略、授权、密钥审计 | 第 10 章 |
| 平台 | 能力目录、黄金路径、采纳度量 | 第 11 章 |
| 成本 | 归因、容量模型、预算规则 | 第 12 章 |
| 综合 | 两服务端到端、带门禁发布、路线图 | 第 13 章 |
这些组件仍然通过端口接入领域层;Order 聚合不知道服务发现、开关和 SLO 的存在。代码分 L1–L4 四级,卷四以 L1 为主,第 1、4、7、9、13 章各有一个 L2 进程内场景;L3/L4 只写清需要什么真实环境,不伪造云上实测。
读完标准
读完卷四,你应该能独立回答下面六个问题:
- 什么条件下拆分收益大于分布式成本?拆错了怎么退?
- 一次字段变更如何在不打挂消费者的情况下发布?弃用窗口怎么定?
- 实例摘除、重试和超时预算怎样共同决定一次故障的爆炸半径?
- SLO 如何从用户视角定义,并真正触发发布冻结而不是只做展示?
- 一次混沌演练的稳态假设、爆炸半径和止损条件分别是什么?
- 成本如何归因到团队和单位业务量,并反过来影响架构决策?
如果只能背出“微服务、SRE、FinOps”的定义,却回答不了这六个问题,说明还停留在名词层。
版本与验证
- Go 1.26.0(darwin/arm64)用于全部 Go 代码与测试。
- Java 对照使用 JDK 21 语法;未在本机实跑的 Java 片段会明确标注“示例代码”。
- 代码块用
// file:、// tier:、// verify:标记,可抽取后独立编译测试。 - 本卷不承诺云上多环境、真实服务网格或真实账单数据;相关结论以“需真实环境”标注。
- 章节日期集中在 2026-10-26 至 2026-11-02,均早于站点构建的当前时间,避免未来页面被跳过。
卷四结束后,四卷本形成一条完整链路:卷一画边界,卷二付代价,卷三保一致,卷四让前三条在真实组织里持续成立。