这里是全站文章的归档入口,下面是按时间倒序排列的全部文章。若想按主题浏览,请从首页的专题分类进入。
《后端架构设计·架构基础与边界》附录 A 术语表
卷一术语表:按领域建模、架构风格、数据一致性、接口通信、运行可用性、组织治理六组收录常用词,给出英文、本书用法和常见混淆;单列十组最容易混用的概念、五个容易过时的定义、常见缩写与章节对照,并在写作 ADR、接口文档和评审记录时提供统一口径,方便阅读时快速定位。
posts
这里是全站文章的归档入口,下面是按时间倒序排列的全部文章。若想按主题浏览,请从首页的专题分类进入。
卷一术语表:按领域建模、架构风格、数据一致性、接口通信、运行可用性、组织治理六组收录常用词,给出英文、本书用法和常见混淆;单列十组最容易混用的概念、五个容易过时的定义、常见缩写与章节对照,并在写作 ADR、接口文档和评审记录时提供统一口径,方便阅读时快速定位。
把卷一的基线、未知项和未决问题整理成可交接清单:八条基线中五项没有生产数据,六个问题全部带 owner、截止日期和对应卷二主题;Go 就绪门禁检查 measured 是否可复核、unknown 是否有计划、阻塞问题是否有截止日期,并明确“可以开始卷二”不等于“可以宣称性能指标”。
评审一个与 2.3 不同的候选方案:把订单与库存合并为 order-core 单服务。先固定六条证据、四条反对意见和三个重审条件,再用 Go 评分器把证据缺口、未关闭的阻断意见与决策一致性折算成分数;演练明确基于 arch-lab,不是真实公司会议。
把 Book 和 Member 收成真正的不可变对象:private final 字段、无 setter、withX 返回新实例、List.copyOf 防御性复制;再把借出状态从 Book 移到 LibraryService 的 onLoan 集合,并用 List.copyOf 与 unmodifiableList 的真实差异说明「复制」和「视图」不是一回事。
让 Book 从「字段袋子」变成「一创建就合法」的对象:讲清构造器的定义、重载与 this(...) 委托,final 字段的明确赋值,静态字段、实例字段、初始化块与构造器的执行顺序;再用 JDK 25 的灵活构造器体,把参数校验放到 this(...) 之前。
把卷一散落在各章的决策收敛成一条可检查的链:需求与约束先变成驱动因素,七条 ADR 再按依赖关系排序;给出带 drivers、depends_on、备选与否决理由、正负后果的 Go 索引结构,并用校验器捕获孤立 ADR、缺失备选、无后果、非法日期与依赖环。
《MMO 服务器开发》卷四《工程化与运营》全 30 篇的目录与阅读入口。前三卷把 aegis 从网络内核、单服玩法做到分布式集群,这一卷回答最后一问:这套服务端怎么压测、怎么调优、怎么观测、怎么发布、怎么运营。十个部分覆盖压测与容量、性能调优与双栈 GC 对照、可观测性、部署与发布、配置中心与热更新、数据分析与埋点、GM 后台、容灾与演练、综合项目,以及收官的跨栈对照矩阵。
把本卷各章的验收动作串成一份可执行的上线清单:起服、压测、指标、灰度、热更、停服、备份、切换、演练、签核十项,每一项都必须挂一份可复现的证据,再给一个能真跑的校验器,读一份 checklist.json 并断言每项都有通过证据,接进流水线当闸用。
装配好之后它达标了吗?本节先写死三条硬预算——每 tick P99 不超过 33ms、单进程连接数下限、请求往返 P99 上限,再用一次真实负载去撞它:10000 实体跑帧分位、400 条真连接跑心跳分位,落成 JSON,逐字段与正文对应。
把前三卷的网络内核、单服玩法系统与分布式集群,装配成一个可以交付、可以起停、可以验收的《晨曦大陆》服务端:四个守护进程按依赖顺序拉起,中间件先探活、节点后健康门禁,一条命令起停,并以一条端到端冒烟断言收口,把散落的零件拼成一台可以运营的整机。
备份能不能恢复、主挂了能不能切换,光看架构图不算数,只有定期真跑一遍才知道。本节把容灾做成可重复的动作:一份故障注入清单与演练剧本、一套通过判据,再加事故复盘的时间线重建与改进项闭环跟踪,全部给出可跑的 Go 实现并真跑断言,含 TTD、MaxGap 与闭环率。
多活不是把服务复制到两个机房就完事,而要回答三个问题:切换由谁决定、旧主怎么办、切完数据对不对。本节对照主备、同城双活、异地多活三种形态,用一个可跑的故障切换状态机演示主节点宕机后的选主、流量切换、围栏旧主与一致性检查,并真跑断言新主接管、旧主被 fence。
备份不是把数据复制一份,而是保证任何一次误删、损坏或机房故障之后都能把数据恢复到某个一致状态。本节讲清全量与增量的分工、备份周期与保留策略、异地副本的必要性,并在本机 Postgres 上真跑一遍「写数据、备份、破坏、恢复、校验和一致」的完整闭环。
客服每天都在处理「我的号卡住了」「我的道具不见了」这类工单,而修复线上数据是所有运营动作里风险最高的一种。这一节把客服修复做成一条有闸门的流水线:工单走提交、审核、执行、回执、归档五态状态机,修复脚本只允许白名单操作并需二次确认,修复前后各留一份快照用于对账与回滚,并给出可跑的工单与修复断言。
权限决定了谁能下令,但一条 GM 命令从控制台下发到真正落地,中间要穿过网络重发、进程崩溃、发奖半途而废这些失败点。这一节用命令指纹与票据做幂等,让同一条命令重复执行只生效一次;用补偿把发奖失败的钱退回去,守住账目守恒;用重试加去重让暂时性失败自动恢复,并给出可跑的幂等与补偿断言。
GM 后台是运营手里最锋利也最危险的一把刀:一次误操作就能给全服发错奖励,或者抹掉一个玩家的付费道具。这一节把控制这把刀的三道锁讲透——用 RBAC 决定谁能发什么命令、谁能改什么配置,用双人审批拦住高危操作,再用 append-only 加哈希链的审计日志把谁在何时对谁做了什么、结果如何永久留痕,并给出可跑的权限判定与审计断言。
埋点进了数仓,接下来回答运营最关心的三个问题:玩家第二天还来不来、愿不愿意花钱、活动每一步漏掉了多少人。这一节把次日/7 日/30 日留存的口径与去重、付费率与首充复购、活动转化漏斗逐段算清,并用一组构造数据集把每一步的数字断言成可执行的测试。
口径定好了,原始事件从哪里来?这一节先分清客户端埋点与服务端埋点的边界,再把「攒一批、带 EventID 去重、用 CmdTelemetryBatch 0x1301 上报」的事件模型写清楚,最后真连 NATS 跑一条采集、缓冲、清洗、落库四段式管道,用断言证明重复与畸形事件都被正确剔除。
指标不是数字,而是数字加口径。这一节先把业务、服务、资源三层指标摆清楚,再用「登录口径」与「在线口径」两种 DAU 演示两个团队为什么会对不上账,最后把统一口径写成一份能跑的 Go 断言:两种口径必须给出不同结果、ARPPU 永远不低于 ARPU、不一致必须带原因。
改配置前先算影响面,灰度期盯着错误率,一旦越线就自动熔断并回滚到上一个已知良好版本——这是线上变更的三道护栏。本节把护栏判定与一键回滚写成可编译的 Go 代码,并真连本机 etcd 跑通「发布坏配置 → 熔断 → 回滚 → 内容复原」的完整断言。