posts

《后端架构设计·演进与治理》 · 全书目录与章节索引(45 篇)

《后端架构设计》卷四全 45 篇:以 Go 订单系统 arch-lab 为主线,从微服务拆分判据、契约演进、服务发现与网关,讲到配置开关、可观测性、SLO 与错误预算、混沌演练、发布工程、多租户、平台工程与成本治理,最后完成两服务拆分与带门禁发布;39 篇正文附可运行 Go 代码与测试。

《后端架构设计》是一套四卷本:卷一《架构基础与边界》、卷二《高性能与高可用》、卷三《分布式与数据一致性》、卷四《演进与治理》。本页是卷四的完整目录,共 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.2BFF:按端聚合与契约裁剪BFF 聚合、字段裁剪与部分失败
4.3网关失败模式:超时预算、连接池与级联故障超时预算、连接池与级联故障

第二部分:运行时治理(第 5–7 章)

节文章核心内容
5.1配置分层、版本与灰度发布配置分层、版本与灰度
5.2功能开关:类型、生命周期与开关债开关类型、生命周期与开关债
5.3动态配置一致性:推送、轮询与回滚推送/轮询、版本水位与回滚
6.1日志、指标与追踪的统一语义约定日志、指标与追踪的统一语义约定
6.2分布式追踪:采样、上下文传播与成本采样、上下文传播与成本
6.3从信号到诊断:一次跨服务排障复盘信号关联与跨服务排障
7.1SLI 定义:指标、窗口与用户视角SLI 定义、窗口与用户视角
7.2错误预算:发布门禁与冻结策略错误预算、燃尽率与发布冻结
7.3依赖级联:多服务 SLO 的预算分配依赖级联与预算分配

第三部分:变更与风险(第 8–10 章)

节文章核心内容
8.1故障注入的层次:进程、网络、依赖与区域进程/网络/依赖/区域四层注入
8.2演练设计:稳态假设、爆炸半径与止损稳态假设、爆炸半径与止损
8.3从演练到修复:游戏日、回归与证据留存游戏日、回归与证据留存
9.1制品、环境与不可变部署制品摘要、环境与不可变部署
9.2渐进式发布:金丝雀、流量比例与自动回滚金丝雀状态机与自动回滚
9.3数据库变更与发布协同:expand-contractexpand-contract 与发布协同
10.1租户模型:隔离级别与数据分区租户隔离级别与数据分区
10.2服务间身份:认证、授权与最小权限服务身份、授权与最小权限
10.3密钥、审计与合规边界密钥轮换、审计与合规边界

第四部分:组织、成本与综合(第 11–13 章)

节文章核心内容
11.1平台即产品:能力边界与用户旅程平台能力边界与用户旅程
11.2黄金路径与自助服务:从工单到模板黄金路径、模板与自助服务
11.3平台度量:采纳率、交付效率与反悔成本采纳率、交付效率与反悔成本
12.1成本归因:标签、分摊与单位经济标签归因、分摊与单位经济
12.2容量与成本:预留、弹性与闲置回收预留/弹性/闲置的成本模型
12.3成本治理机制:预算、评审与责任到团队预算、评审与责任到团队
13.1arch-lab 从模块化单体到两服务arch-lab 两服务拆分端到端
13.2一次带 SLO 门禁与混沌演练的发布SLO 门禁 + 混沌演练的发布
13.3四卷收口:架构、性能、一致性与治理的路线图四卷路线图与未证明项交接

与站内专题的关系

卷四与 架构设计 、分布式系统 和 DevOps 是“书稿 + 专题”的关系。专题文章负责概念地图和工具全貌,卷四负责订单系统里的判据、状态机与可运行检查。例如:

arch-lab 在卷四新增什么

卷四不重画领域边界,只在 internal/platform/ 与 internal/evolve/ 下增加治理能力:

组新增组件对应章节
拆分就绪度评分卡、依赖图、两服务路由第 1 章
契约schema 兼容检查、消费者契约第 2 章
发现注册表、P2C、xDS 配置检查第 3 章
网关边缘路由、BFF、级联模拟第 4 章
配置分层配置、开关、动态同步第 5 章
观测语义约定、采样、诊断排序第 6 章
SLOSLI 窗口、错误预算、发布门禁第 7 章
混沌分层注入、演练状态机、游戏日第 8 章
发布制品校验、金丝雀、expand-contract第 9 章
租户隔离策略、授权、密钥审计第 10 章
平台能力目录、黄金路径、采纳度量第 11 章
成本归因、容量模型、预算规则第 12 章
综合两服务端到端、带门禁发布、路线图第 13 章

这些组件仍然通过端口接入领域层;Order 聚合不知道服务发现、开关和 SLO 的存在。代码分 L1–L4 四级,卷四以 L1 为主,第 1、4、7、9、13 章各有一个 L2 进程内场景;L3/L4 只写清需要什么真实环境,不伪造云上实测。

读完标准

读完卷四,你应该能独立回答下面六个问题:

  1. 什么条件下拆分收益大于分布式成本?拆错了怎么退?
  2. 一次字段变更如何在不打挂消费者的情况下发布?弃用窗口怎么定?
  3. 实例摘除、重试和超时预算怎样共同决定一次故障的爆炸半径?
  4. SLO 如何从用户视角定义,并真正触发发布冻结而不是只做展示?
  5. 一次混沌演练的稳态假设、爆炸半径和止损条件分别是什么?
  6. 成本如何归因到团队和单位业务量,并反过来影响架构决策?

如果只能背出“微服务、SRE、FinOps”的定义,却回答不了这六个问题,说明还停留在名词层。

版本与验证

卷四结束后,四卷本形成一条完整链路:卷一画边界,卷二付代价,卷三保一致,卷四让前三条在真实组织里持续成立。

全部文章 Books game Java Indie golang 客户端开发 Minigame Saas rust Python
books

《后端架构设计·演进与治理》8.1 故障注入的层次:进程、网络、依赖与区域

从 arch-lab 订单系统一次按实例比例审批、却在网络层故障中放大到全链路的事故切入,区分进程、网络、依赖与区域四层注入各能证明什么,给出按拓扑计算真实爆炸半径、检查关键状态转换损失并在超预算时拒绝执行的 Go 实现与表驱动测试,全部代码在本机跑通。

8 分钟阅读
书稿 后端架构 Go
books

《后端架构设计·演进与治理》4.3 网关失败模式:超时预算、连接池与级联故障

从一次 3 秒网关超时在重试与连接池排队中被放大成 30 秒的事故出发,说明绝对超时预算如何向子调用传递、取消后的工作为何仍占连接,以及级联故障的离散事件模拟;给出 Go 实现并实测健康、池饥饿与三次重试三组配置在成功数、尝试次数和连接占用上的差异,并说明模型不能替代真实压测。

8 分钟阅读
书稿 后端架构 Go
books

《后端架构设计·演进与治理》3.2 客户端负载均衡:算法、局部性与重试放大

从订单服务调用库存时一次慢节点触发客户端重试、把流量放大数倍的事故出发,对比轮询、随机、P2C 与最小连接数的取舍,说明同可用区优先的局部性与溢出条件,给出带重试预算的 Go 负载均衡实现与真实测试输出,并拆解多层重试在调用链上的完整放大算式。

7 分钟阅读
书稿 后端架构 Go