全书 45 篇:13 章正文 + 序、前言、目录 + 附录 A/B/C。每节配可运行的 Go 代码,代码块用
// file:/// tier:/// verify:标注,可在实验工程中逐字节还原。
本页是卷四的完整索引。可以从目录与学习路径 按顺序通读,也可以按问题跳读。
全书概览
| 项目 | 内容 |
|---|---|
| 书稿 | 《互联网产品的服务端架构》卷四 |
| 已发布篇数 | 45 篇(含目录与附录) |
| 主线语言 | Go 1.26.0(实验工程 module webapp) |
| 贯穿案例 | 内容社区 + IM + 轻交易「回声」 |
| 阅读方式 | 目录篇顺序通读,或按章节表跳读 |
| 上级专题 | 书稿专题 |
前置
| 篇 | 文章 | 核心内容 |
|---|---|---|
| 序 | 序 | 卷四序:当「回声」从一条交易链路长成多业务、多地域、多团队共用的平台,架构的主要矛盾从「… |
| 前言 | 前言 | 卷四前言:说明读者假设、13 章的组织方式、每章的统一结构、可运行 Go 实验工程的包划… |
| 目录 | 目录与学习路径 | 卷四目录与学习路径:13 章按能力、案例、决策三段组织,先给依赖图与三条阅读路线的选择依… |
第 1 章 单体到服务化
| 节 | 文章 | 核心内容 |
|---|---|---|
| 1.1 | 1.1 拆分的触发条件 | 从「回声」一次关于要不要拆服务的评审写起,说明团队数、发布冲突率和故障爆炸半径为什么比代… |
| 1.2 | 1.2 按产品域拆还是按层拆 | 从「回声」订单与支付的边界争议出发,对比按产品域拆与按技术层拆在所有权、变更频率、事务边… |
| 1.3 | 1.3 一次拆分的回退方案 | 从「回声」拆分订单服务进行到双写阶段时的一次回退失败写起,说明每个阶段为什么必须同时定义… |
第 2 章 多活与容灾
| 节 | 文章 | 核心内容 |
|---|---|---|
| 2.1 | 2.1 单元化与用户路由 | 从一次机房级故障切入,说明单元化真正解决的是故障不扩散而不是单次请求更快;给出家单元优先… |
| 2.2 | 2.2 数据同步与冲突 | 围绕同一条记录在两个单元被同时修改的场景,拆解版本、时间与业务语义三层冲突判定,说明为什… |
| 2.3 | 2.3 切换、回切与演练 | 从一次演练通过却回切失败的事故出发,区分切换、回切与演练三件不同的事,给出回切前必须回答… |
第 3 章 突发流量
| 节 | 文章 | 核心内容 |
|---|---|---|
| 3.1 | 3.1 热点事件的流量特征 | 从一个整点开抢的闪购活动写起,拆解热点流量突发、可预测、来源集中这三个特征,说明为什么单… |
| 3.2 | 3.2 弹性扩容与预热 | 从一场提前排期却仍然打垮系统的直播带货写起,说明弹性扩容的瓶颈不是决策而是冷启动,预热必… |
| 3.3 | 3.3 降级与排队 | 从一个大促当天误开降级开关、导致全站无法下单的事故写起,说明降级为什么必须分档、每一档牺… |
第 4 章 数据规模
| 节 | 文章 | 核心内容 |
|---|---|---|
| 4.1 | 4.1 分库分表与路由 | 「回声」的订单表涨到三亿行后,团队在 user_id、order_id 与商户维度之间反… |
| 4.2 | 4.2 冷热分离与归档 | 订单历史涨到十八亿行后,「回声」把三十天前的数据一律搬到对象存储,结果客服查询四十五天前… |
| 4.3 | 4.3 数据迁移与双读 | 把十八亿行订单从单库迁到三十二分片集群时,「回声」团队用双读比对兜底,却在回填中途改了分… |
第 5 章 成本治理
| 节 | 文章 | 核心内容 |
|---|---|---|
| 5.1 | 5.1 单位经济模型 | 「回声」的月度云账单涨到 86 万元(案例假设值)时,团队才发现“每单成本”可以有四个分… |
| 5.2 | 5.2 存储与带宽成本 | 「回声」把 1 TB 存储和 1 TB 带宽当成同一个成本项,直到冷归档的取回费超过省下… |
| 5.3 | 5.3 闲置回收与预算机制 | 「回声」的月度计算账单多出 12 万元,成本看板却只有一个总额,六个星期没人说清是哪条链… |
第 6 章 稳定性体系
| 节 | 文章 | 核心内容 |
|---|---|---|
| 6.1 | 6.1 SLO 与错误预算 | 「回声」把可用性写进合同后,团队仍靠感觉判断能不能发布。本节把 SLI、SLO 与错误预… |
| 6.2 | 6.2 故障分级与应急 | 凌晨两点的告警群里,最常见的争论是「这个要不要叫人」。本节把故障分级从技术指标拉回用户影… |
| 6.3 | 6.3 复盘与改进闭环 | 复盘会开得很热闹,三个月后同类故障再次发生,改进项却还停在文档里。本节把「加强监控」拆成… |
第 7 章 安全与合规
| 节 | 文章 | 核心内容 |
|---|---|---|
| 7.1 | 7.1 反爬与接口防刷 | 「回声」的价格接口被竞品爬虫高频抓取,团队先按 IP 封禁,误伤了合作方共享出口的三千名… |
| 7.2 | 7.2 内容安全与未成年人保护 | 「回声」上线青少年模式后,审核仍只分“违规”和“正常”两档,年龄判断又放在客户端,结果一… |
| 7.3 | 7.3 个人信息保护与审计 | 「回声」的客服为排查一笔退款,把包含手机号、地址和身份证号的工单导成 CSV 发到群里,… |
第 8 章 研发效能
| 节 | 文章 | 核心内容 |
|---|---|---|
| 8.1 | 8.1 环境、制品与发布流水线 | 「回声」从 3 个服务涨到 12 个服务后,发布仍然靠登录机器执行脚本。本节把环境职责、… |
| 8.2 | 8.2 内部平台的能力边界 | 平台组只有 5 个人,却收到从建 Kafka topic 到调 MySQL 参数的各种请… |
| 8.3 | 8.3 平台采纳与反悔成本 | 内部平台上线半年,180 个服务里只有 12% 迁了过来。本节把迁移成本、双轨成本与退出… |
第 9 章 演进案例:Feed
| 节 | 文章 | 核心内容 |
|---|---|---|
| 9.1 | 9.1 旧链路的问题与基线 | 「回声」的 Feed 链路在日活八十万后晚高峰频繁抖动,团队却拿不出可复现的基线。本节把… |
| 9.2 | 9.2 双写、灰度与切换 | 「回声」在切换前让新旧 Feed 链路同时写入,却发现差异看板长期为零:比对只覆盖发布事… |
| 9.3 | 9.3 结果与回退条件 | 灰度到一半时「回声」发现推荐质量下滑,团队决定回退,却只切了读开关:双写还在继续、缓存没… |
第 10 章 演进案例:IM
| 节 | 文章 | 核心内容 |
|---|---|---|
| 10.1 | 10.1 会话归属与路由 | 「回声」的 IM 从三台接入机扩到十二台后,老用户频繁掉线,新增节点却几乎空转。本节把会… |
| 10.2 | 10.2 消息同步与顺序 | 用户在手机和网页之间切换后,同一段对话出现了重复、空洞和倒序。本节把消息同步拆成序号分配… |
| 10.3 | 10.3 切换演练与用户无感 | 「回声」做了一次跨机房切换演练,监控全绿,用户却收到重复的离线消息。本节把无感切换拆成排… |
第 11 章 演进案例:大促
| 节 | 文章 | 核心内容 |
|---|---|---|
| 11.1 | 11.1 容量规划与压测 | 「回声」大促前一周,业务说峰值是日常的五倍,运维说机器还能再加,压测报告却和线上表现对不… |
| 11.2 | 11.2 限流、降级与预案 | 大促预案最容易写成一张只有阈值的表:订单每秒五千、详情每秒两万,却没人回答超限之后用户看… |
| 11.3 | 11.3 大促复盘 | 大促结束后的复盘如果只写「流量太大」,下一次大促只会重复同一句话。本节把复盘收口为时间线… |
第 12 章 决策与组织
| 节 | 文章 | 核心内容 |
|---|---|---|
| 12.1 | 12.1 团队边界与系统边界 | 「回声」把订单域拆成交易与履约两个团队后,一个系统出现了两个 owner,一次字段变更被… |
| 12.2 | 12.2 决策权与评审 | 「回声」的支付团队把一个可逆的小改动送进架构评审,排了四天队,最后在凌晨绕过流程上线,反… |
| 12.3 | 12.3 技术债与演进路线 | 「回声」的商品价格缓存双写缺陷在 backlog 里躺了两个季度,每次都被“下个迭代再说… |
第 13 章 全书收口
| 节 | 文章 | 核心内容 |
|---|---|---|
| 13.1 | 13.1 从 MVP 到规模化的路线图 | 「回声」在增长之后同时列出了分片、多地域和服务化三件事,团队却说不清先做哪个。本节把规模… |
| 13.2 | 13.2 架构健康度自评 | 「回声」年度架构评审把五个维度的加权分做成了团队排行榜,结果少报维度、只挑高分的团队排到… |
| 13.3 | 13.3 结语:产品、架构与人的共同演进 | 「回声」三年规模化计划收尾时,团队发现产品、架构与人并不以同一速度演进:产品按季度变,架… |
附录
| 篇 | 文章 | 核心内容 |
|---|---|---|
| 附录 A 规模化指标 | 附录 A 规模化指标 | 把卷四反复用到的规模化指标集中成表:容量与利用率、爆炸半径、SLO 与错误预算、成本与单… |
| 附录 B 演练与应急预案模板 | 附录 B 演练与应急预案模板 | 把故障演练与应急预案写成可直接填写的模板:演练的四种类型、计划与剧本字段、注入方式与判定… |
| 附录 C 架构演进评审清单 | 附录 C 架构演进评审清单 | 把卷四涉及的拆分、单元化、多活、成本、平台化与组织变更整理成可逐条对照的评审清单:触发条… |
怎么读这一卷
- 第一次读:从序和前言开始,按 1.1 到 13.3 顺序读;前三章(拆分、多活、突发流量)决定后面所有案例的边界。
- 带着问题读:拆分时机看第 1 章,多活与回切看第 2 章,大促与预热看第 3、11 章,分片与冷热看第 4 章,成本看第 5 章,SLO 与告警看第 6 章,权限与合规看第 7 章,研发效能看第 8 章。
- 只想看案例:直接读第 9–11 章的 Feed、IM、大促三次演进,再回头对照第 1–8 章的判定点。
与其他书稿的边界
- 账号、内容、Feed、IM、推送、搜索与推荐的产品建模在卷一、卷二;本卷只讲它们在规模化阶段的改造。
- 交易、库存、支付、券与活动的业务正确性在卷三;本卷不重复状态机与对账细节,只在案例里引用。
- 通用架构模式、DDD、C4、ADR 的概念细节在《后端架构设计》里,本卷不重复综述。
- 站内已有的高可用、单元化、容量、成本专题提供概念背景,本卷不重复定义,只在需要时给出入口。
代码与可复现性
- 本章全部 39 节代码为 L1(单包、纯逻辑),可在实验工程中逐节
go test。 - 每个代码块的三行头给出文件路径、级别与验证命令;代码块与实验工程逐字节一致。
- 文中标注“实测”的输出均在本机 Go 1.26.0 上真实执行;未执行的一律写“示例/预期”。