《MMO 服务器开发》工程化与运营 · 目录

《MMO 服务器开发》卷四《工程化与运营》全 30 篇的目录与阅读入口。前三卷把 aegis 从网络内核、单服玩法做到分布式集群,这一卷回答最后一问:这套服务端怎么压测、怎么调优、怎么观测、怎么发布、怎么运营。十个部分覆盖压测与容量、性能调优与双栈 GC 对照、可观测性、部署与发布、配置中心与热更新、数据分析与埋点、GM 后台、容灾与演练、综合项目,以及收官的跨栈对照矩阵。

这是《MMO 服务器开发》卷四《工程化与运营》的目录。前三卷把 aegis 从一台机器上的网络内核,做成了能单服可玩、又能跨服集群的服务端;这一卷回答的是最后一问:做出来之后,怎么把它交付出去、并且长期运营好。

目录

本页是《工程化与运营》的全书入口,按顺序列出全部 30 篇,点击标题直达正文。也可以从各节末尾的「阅读导航」按顺序通读,或先看下面三条学习路径与验收清单。

这一卷要解决什么

前几卷证明了「能做出来」,这一卷要证明「能交付、能运营」。落到工程上,是四件事:

  1. 能量出来——承载数字不是「在线人数」,而是连接数、消息吞吐、P99 延迟、内存与 GC、跨服往返这些可以复现的硬指标。压测要有口径、要有平台、要有容量模型。
  2. 能看清——线上出问题时,日志、指标、链路三件套要能把「谁、什么时候、对谁、做了什么、结果如何」还原出来,而不是靠猜。
  3. 能安全变更——配置热更、灰度发布、优雅停服、回滚,这些是长线运营里最高频、也最容易出事故的动作,必须有边界、有护栏、有审计。
  4. 能兜住——备份能恢复、多活能切换、事故能复盘、数据能修复。运营的底线不是「不出事」,而是「出了事能收得住」。

这一卷的每一节都尽量给能真跑的产物:压测器、指标打点、配置推送、GM 命令、备份恢复、切换演练,全部在本机跑过。

这一卷写给谁

本卷面向已经把服务端做出来、准备上线或已经上线的人。

四类读者,四种收获

你是你会拿到
准备上线的技术负责人一套可执行的上线检查清单,与一份跨栈选型判断标准
负责容量的后端工程师机器人压测平台 + 容量模型,能把「能扛多少人」算成数字
值班 / SRE日志、指标、链路、告警、演练与复盘的一整套落地做法
运营与客服支持GM 后台的权限、审计、补偿、数据修复流程

这一卷与前几卷的关系

卷回答的问题本卷如何承接
卷一《网络与并发内核》网络与并发怎么从零造压测器直接复用卷一的帧格式与机器人客户端
卷二《单服架构与玩法系统》玩法系统怎么装进去综合项目把卷二玩法装配成可交付形态
卷三《分布式与跨服》规模怎么做上去部署、发布、容灾都建立在卷三的集群拓扑之上
卷四《工程化与运营》怎么交付并长期运营本卷

可运行性口径

本卷大量依赖真实中间件与真实进程。所有中间件都以独立容器在本机运行,端口与用户自己的实例完全错开。

服务本机地址用途
Redis 7127.0.0.1:26379缓存、计数、限流
Postgres 17127.0.0.1:25432落库、对账、备份恢复
etcd 3.6.4http://127.0.0.1:32379配置中心、租约
NATS 2nats://127.0.0.1:34222事件与埋点管道
Consul 1.20http://127.0.0.1:38500服务注册与健康检查
层级内容验收手段
L1纯逻辑(容量模型、漏斗计算、权限判定)go test
L2真起进程 / 真连中间件自写 harness,真跑
L2JJava 对照(Go GC vs JVM GC)Docker 拉 JDK 21 真跑
L3静态清单(K8s / 云组件)仅语法与 schema 校验,本机不部署
L4不可复现(公网、真机、真 DDoS、真云控制台)正文显式标注
B基准(连接数、QPS、P99、内存与 GC)产出数字,软告警不硬失败

三条阅读路径

路径 A:准备上线(按顺序通读)

从第 1 章压测与容量开始,把承载数字算出来;再读第 2 章性能调优,确认帧预算达标;接着第 3 章可观测性、第 4 章部署与发布、第 5 章配置与热更,把「怎么安全上线」走完;最后用第 9 章综合项目与第 10 章收官收口。

路径 B:已经在线,先补观测与容灾

如果你已经在运营,优先读第 3 章(日志、指标、链路)、第 8 章(备份、多活、演练)、第 7 章(GM 与数据修复)。这三章是「出事时能不能收住」的直接答案。

路径 C:只想知道 Go 与 Java 怎么选

直接读第 2 章 2.2(Go GC vs JVM GC 本机实测)与第 10 章 10.1(跨栈对照矩阵与选型标准),再回看卷一 2.3 与 4.2 的两处双栈对照,就能拿到完整判断。

全书章节索引

第一部分:压测与容量(第 1 章)

节文章核心内容
1.1压测口径:不要只看在线人数承载指标的定义与常见误区
1.2机器人压测平台从零写一个可编排的机器人压测器
1.3承载评估与容量规划从单机数字推算集群容量(B)

第二部分:性能调优(第 2 章)

节文章核心内容
2.1帧预算与性能剖析帧预算拆分与 pprof 剖析
2.2双栈对照:Go GC vs JVM GC两种运行时的内存与 GC 实测对照(L2J)
2.3热区隔离与背压热点隔离、队列与背压

第三部分:可观测性(第 3 章)

节文章核心内容
3.1日志该记什么结构化日志与上下文
3.2指标与 Prometheus 打点指标类型与真跑拉取
3.3链路追踪与告警trace 传播与告警规则

第四部分:部署与发布(第 4 章)

节文章核心内容
4.1容器化与编排镜像、清单与编排(含 L3)
4.2蓝绿、灰度与滚动发布三种发布策略的取舍
4.3优雅停服与有状态服务发布排空、落库与代次切换

第五部分:配置中心与热更新(第 5 章)

节文章核心内容
5.1配置版本化与差量分发版本、差量、灰度推送
5.2热重载的边界哪些能热更、哪些不能
5.3线上风控与回滚护栏、熔断与一键回滚

第六部分:数据分析与埋点(第 6 章)

节文章核心内容
6.1指标体系与口径指标分层与口径统一
6.2埋点与数据管道埋点上报与管道
6.3留存、付费与活动转化分析漏斗与留存计算

第七部分:GM 后台与运营控制台(第 7 章)

节文章核心内容
7.1权限与审计角色、审批与审计留痕
7.2命令、补偿与重试GM 命令的幂等与补偿
7.3客服工具与数据修复流程工单、修复与回执

第八部分:容灾与演练(第 8 章)

节文章核心内容
8.1备份与恢复备份策略与恢复演练
8.2多活与故障切换多活形态与切换
8.3演练与事故复盘演练设计与复盘方法

第九部分:综合项目(第 9 章)

节文章核心内容
9.1《晨曦大陆》玩法装配把四卷产物装配成可交付形态
9.2性能预算达标帧预算与承载预算验收
9.3上线检查清单一份可执行的上线清单

第十部分:收官(第 10 章)

节文章核心内容
10.1跨栈对照矩阵:Go vs Java 最佳实践与选型标准并发、内存、网络、GC、部署、生态全维度对照
10.2与 skynet / pitaya / leaf 对照与全书收官三个框架对照与整套书回顾

《晨曦大陆》上线验收清单

下面这十步是本卷反复用到的验收动作,第 9 章会把它们串成一份清单:

步骤动作通过判据
1起全部节点与中间件健康检查全绿
2机器人压测达到目标连接数与吞吐,P99 在预算内
3指标打点核对/metrics 能拉到关键指标
4灰度发布新版本流量按比例生效
5配置热更不重启即生效,可回滚
6优雅停服连接被排空,数据已落库
7备份与恢复从备份能恢复到一致状态
8故障切换主节点宕机后能自动接管
9演练复盘有记录、有改进项
10上线清单逐条打勾,无遗留

每一节长什么样

每节都遵循同一结构:先是导入段落说明本节要解决什么问题,然后三到四个小节展开,其中至少有一个能真跑的代码块(L1 逻辑、L2 真连中间件或真起进程、L2J Java 对照、B 基准)。代码块都标了层级与来源文件,正文里也会写明「这段是 L1,go test 可以直接跑」之类的提示。

纯静态或不可复现的部分(K8s 清单、云厂商控制台操作、真实公网 DDoS)会显式标注为 L3 或 L4,并说明为什么本机跑不了,而不是含糊带过。

学完之后你能做什么

  • 用机器人压测平台,把「能扛多少人」算成一个可复现的数字;
  • 用日志、指标、链路三件套,定位一次线上异常;
  • 用配置中心与灰度发布,在不重启、不宕机的前提下改线上行为;
  • 用 GM 后台与数据修复流程,处理一次玩家投诉并留下审计痕迹;
  • 用备份恢复与故障切换,完成一次演练;
  • 用跨栈对照矩阵,为团队做出 Go 与 Java 的选型判断。

常见问题速查

问题去哪一节
在线人数不涨但服务器很慢,怎么定位1.1、2.1
怎么写一个能压出真实负载的机器人1.2
单机能扛多少,集群能扛多少1.3、9.2
Go 和 Java 的内存与 GC 到底差多少2.2、10.1
一个卡顿热点怎么隔离出去2.3
日志该记哪些字段3.1
指标怎么打、怎么被 Prometheus 拉到3.2
一次请求跨了五个服务怎么追3.3
怎么用容器和清单把服务部署起来4.1
蓝绿、灰度、滚动到底怎么选4.2
有状态服务怎么优雅停服4.3
配置怎么版本化、怎么差量推5.1
哪些配置能热更,哪些必须重启5.2
改坏了怎么一键回滚5.3
埋点指标口径怎么统一6.1
埋点数据怎么进管道6.2
留存和付费漏斗怎么算6.3
GM 权限怎么设计、怎么审计7.1
GM 命令怎么做到幂等与可补偿7.2
玩家投诉数据不对怎么修7.3
备份策略怎么定、怎么验证8.1
多活怎么切、切了会不会丢数据8.2
演练怎么做、复盘怎么开8.3
上线前到底要检查什么9.3
Go 和 Java 到底选哪个10.1
和 skynet / pitaya / leaf 比怎么样10.2

本卷的代码约定

本卷代码以 Go 为主线,aegis 为贯穿服务端,《晨曦大陆》 为贯穿游戏。每个代码块都标了 // file:(还原路径)、// tier:(可运行层级)与 // verify:(验证命令)。基准块产出数字,遵循「进程隔离、预热到稳定、同机相对量级」三条纪律,不写「快 N 倍」这类绝对话。

怎么用这份索引

  • 系统学习:从上面「三条阅读路径」里挑一条,按章节顺序读。
  • 抓重点:第 1、3、8 章是运营三条命脉——量得出来、看得清、兜得住。
  • 查问题:用「常见问题速查」表定位到节,再点进去。
  • 配代码:每节代码块都标了层级与来源文件,L2 的块需要本机中间件容器,地址见上面的「可运行性口径」。

相关阅读

继续阅读

探索更多技术文章

浏览归档,发现更多关于系统设计、工具链和工程实践的内容。

全部文章 返回首页

「mmo」更多文章

  1. 《MMO 服务器开发》9.3 上线检查清单
  2. 《MMO 服务器开发》9.2 性能预算达标
  3. 《MMO 服务器开发》9.1 《晨曦大陆》玩法装配