《游戏服务端架构》是一套四卷本:卷一《品类、状态与拓扑》、卷二《核心系统与契约》、卷三《规模化、全球化与成本》、卷四《平台化与架构治理》。本页是卷二的完整目录,共 45 篇。
卷二回答的是“系统之间怎么约定”。卷一确定拓扑之后,真正决定项目能否稳定交付的,是账号、登录、匹配、房间、战斗、结算、经济、社交、榜单、邮件、支付这些系统之间的边界:谁拥有数据、谁可以写、重复执行会怎样、失败时谁兜底。卷三处理容量与全球化,卷四处理平台治理。
全书概览
| 项目 | 内容 |
|---|---|
| 书稿 | 《游戏服务端架构·核心系统与契约》 |
| 篇数 | 45 篇(13 章 × 3 节 + 序、前言、目录、附录 A–C) |
| 贯穿案例 | 北辰工作室:《裂隙战场》《群岛纪元》《泡泡工坊》 |
| 技术栈 | Go 1.26.0;本地验证工程 gsarch-lab |
| 运行级别 | 卷二以 L1 为主;唯一约束与回调场景说明 L3 口径,不声称已跑 |
| 阅读方式 | 从目录与学习路径 进入顺序通读,或按下方路径跳读 |
| 上级专题 | 书稿专题 |
| 相关专题 | 游戏服务端笔记 · 架构设计 |
四条阅读路径
路径 A:顺序通读(约 30 小时)
按“接入与身份 → 对局与战斗 → 经济与成长 → 社交与运营 → 支付与平台 → 收口”的顺序读。第 1–2 章建立身份与接入契约,第 3–5 章处理对局核心,第 6–7 章处理钱与成长,第 8–10 章处理社交与运营,第 11–12 章处理支付与平台,第 13 章收口。
路径 B:带着系统来(约 8 小时)
先看 13.1 的契约矩阵定位自己关心的能力,再跳到对应章节:账号登录读第 1–2 章,对局读第 3–5 章,经济读第 6 章,运营读第 8–10 章,支付合规读第 11 章,平台读第 12 章。
路径 C:只关心评审(约 5 小时)
读 5.2、6.1、10.1、11.1、13.1–13.2,再读附录 B 的契约模板与附录 C 的故障模式清单。适合正在做系统接入评审、事故复盘或平台能力收放的负责人。
路径 D:只看代码与测试
从每节的 // file:、// tier:、// verify: 标记进入 gsarch-lab,按 go test ./internal/<包>/ 逐个跑。代码覆盖身份模型、票据续期、网关归属、匹配窗口、房间生命周期、实例分配、AOI、分线与广播、结算幂等、账本、交易托管、成长状态机、任务进度、重置窗口、关系链、公会权限、聊天限速、榜单读写、邮件投递、支付发货、退款对账、合规判定、租户隔离与契约矩阵。
全书目录
前置与附录
| 篇 | 文章 | 核心内容 |
|---|---|---|
| 序 | 序:拓扑定下来之后,真正难的是系统之间怎么约定 | 卷一与卷二的分工、三个反复出现的问题、四个写作立场 |
| 前言 | 前言:系统契约怎么写成可验证的东西 | 技术基线、13 章验证包、L1–L4 口径与复现方式 |
| 目录 | 目录与学习路径 | 十三章结构、三条阅读路径与可运行性说明 |
| 附 A | 附录 A 平台接口速查 | 账号、登录、匹配、结算、经济、支付等接口与错误语义 |
| 附 B | 附录 B 系统契约模板 | 契约卡字段、填写顺序、四个示例与评审十问 |
| 附 C | 附录 C 核心系统故障模式清单 | 按系统列失败模式、跨系统故障链与最小可观测集 |
第一部分:接入与身份(第 1–2 章)
第 1 章 账号与身份
| 节 | 文章 | 核心内容 |
|---|---|---|
| 1.1 | 1.1 账号、角色、设备与租户 | 四层身份模型、账号合并与注销、租户隔离与删除传播 |
| 1.2 | 1.2 第三方登录与账号绑定 | 外部身份映射、绑定/解绑语义、影子账号与幂等 |
| 1.3 | 1.3 账号安全、找回与风控 | 风险信号、放行/挑战/阻断、找回边界与审计 |
第 2 章 登录与网关
| 节 | 文章 | 核心内容 |
|---|---|---|
| 2.1 | 2.1 登录态、票据与续期 | 一次性票据与会话令牌、滑动/绝对过期、吊销与并发续期 |
| 2.2 | 2.2 网关路由与连接归属 | 网关职责、rendezvous 路由、节点摘除与归属对账 |
| 2.3 | 2.3 登录排队、限流与开服洪峰 | 排队语义、公平性与等待估算、拒绝与退避、重试放大 |
第二部分:对局与战斗(第 3–5 章)
第 3 章 匹配与房间
| 节 | 文章 | 核心内容 |
|---|---|---|
| 3.1 | 3.1 匹配算法与公平性 | 分段与窗口扩展、队伍与延迟、匹配质量与等待取舍 |
| 3.2 | 3.2 房间生命周期与幽灵房间 | 房间状态机、租约与心跳、幽灵检测、结算交接 |
| 3.3 | 3.3 实例分配、暖池与回收 | 租约分配、暖池与冷启动、故障回收、资源碎片 |
第 4 章 场景与世界
| 节 | 文章 | 核心内容 |
|---|---|---|
| 4.1 | 4.1 AOI 选型:九宫格、十字链表与空间索引 | 先算消息量、三种方案对照、同步模型与切换触发 |
| 4.2 | 4.2 分线、副本与主城/野外 | 分线代价、迁移一致性、副本与共享世界边界、容量滞回 |
| 4.3 | 4.3 世界事件与全服广播 | 扇出估算、事件分级、分区订阅、去重与补发 |
第 5 章 战斗与结算
| 节 | 文章 | 核心内容 |
|---|---|---|
| 5.1 | 5.1 战斗服模型:房间内、旁路与托管 | 三种模型、tick 与故障域、崩溃恢复语义、选型判据 |
| 5.2 | 5.2 结算契约与防重复发奖 | 结算单状态机、幂等键、先落单再发奖、改判与冲正 |
| 5.3 | 5.3 战斗日志、回放与审计 | 日志分级、确定性回放 vs 记录回放、审计查询 |
第三部分:经济与成长(第 6–7 章)
第 6 章 经济与交易
| 节 | 文章 | 核心内容 |
|---|---|---|
| 6.1 | 6.1 货币、产出与消耗 | 货币分层、来源标签、双分录账本、对账频率 |
| 6.2 | 6.2 交易托管、冻结与回滚 | 托管状态机、冻结与可用余额、并发与跨服交易 |
| 6.3 | 6.3 经济风控与价格指数 | 异常信号、价格指数的局限、处置手段与申诉 |
第 7 章 成长与任务
| 节 | 文章 | 核心内容 |
|---|---|---|
| 7.1 | 7.1 属性、成长与状态机 | 属性来源分层、计算顺序、成长状态机与非法迁移 |
| 7.2 | 7.2 任务事件与进度服务 | 上报 vs 订阅、进度去重、跨天补算、并发完成 |
| 7.3 | 7.3 每日重置、时区与赛季 | 重置边界、幂等与补做、赛季切换与未领奖励 |
第四部分:社交与运营(第 8–10 章)
第 8 章 社交与公会
| 节 | 文章 | 核心内容 |
|---|---|---|
| 8.1 | 8.1 好友、黑名单与关系一致性 | 有向关系模型、双向一致性、删除清理、跨服边界 |
| 8.2 | 8.2 公会、权限与仓库 | RBAC、权限版本、仓库并发、解散与合并清算 |
| 8.3 | 8.3 聊天频道、审核与限速 | 频道扇出、限速与刷屏、审核位置、误封申诉 |
第 9 章 排行榜与赛季
| 节 | 文章 | 核心内容 |
|---|---|---|
| 9.1 | 9.1 榜单模型与分段 | 榜单类型、分段与同分规则、写模型选择 |
| 9.2 | 9.2 写缓冲、结算与赛季边界 | 批量刷榜、截止快照、幂等结算、赛季切换读一致性 |
| 9.3 | 9.3 榜单的读模型与缓存 | 整榜/分页/个人名次缓存、偏差窗口、热点降级 |
第 10 章 邮件与奖励
| 节 | 文章 | 核心内容 |
|---|---|---|
| 10.1 | 10.1 邮件投递与去重 | 投递模型、去重键、全服扇出、重试与死信 |
| 10.2 | 10.2 附件、过期与流拍结算 | 附件状态机、过期策略、背包满处理、资产归属 |
| 10.3 | 10.3 批量领取、补偿与红点 | 批量领取语义、补偿批次、红点计数一致性 |
第五部分:支付与平台(第 11–12 章)
第 11 章 支付与合规
| 节 | 文章 | 核心内容 |
|---|---|---|
| 11.1 | 11.1 支付渠道与发货幂等 | 订单状态机、验签、回调去重、发货幂等 |
| 11.2 | 11.2 退款、对账与差异处理 | 退款状态机、差异分类、自动冲正与人工挂账 |
| 11.3 | 11.3 防沉迷、实名与未成年人保护 | 判定与执行分离、数据最小化、留存与删除传导 |
第 12 章 平台服务化
| 节 | 文章 | 核心内容 |
|---|---|---|
| 12.1 | 12.1 账号、支付、社交、数据平台的职责 | 能力清单、收进平台的判据、平台与游戏的边界 |
| 12.2 | 12.2 多游戏复用与租户隔离 | 租户模型、隔离维度、配额与 noisy neighbor、版本兼容 |
| 12.3 | 12.3 平台 SLA 与产品团队的契约 | 分能力 SLA、变更与回滚承诺、责任边界与联合响应 |
第六部分:收口(第 13 章)
第 13 章 卷二收口
| 节 | 文章 | 核心内容 |
|---|---|---|
| 13.1 | 13.1 三款产品共用平台的契约矩阵 | 十项能力的共用方式、SLA 与降级责任、矩阵读法 |
| 13.2 | 13.2 系统边界与数据所有权总表 | 数据所有权、越权写入清单、与卷一拓扑基线对照 |
| 13.3 | 13.3 进入卷三:规模与全球化 | 未决问题、就绪检查点、进入规模化前的测量要求 |
与现有专题的关系
卷二与站内两个方向互补,不重复:
- 《MMO 服务器开发》 四卷讲“这套系统具体怎么写”;卷二讲“为什么这样切、契约定在哪、失败时谁负责”。协议、AOI 实现、技能系统等细节在那边展开。
- 《后端架构设计》 四卷讲通用后端的边界、性能与一致性;卷二把同样的方法放进游戏品类约束里,重点落在有状态、强实时、长会话与平台多租户。
/posts/game/server/下的单点笔记适合查具体问题;卷二提供的是把系统连成契约链的框架。
读完卷二的验收标准
如果下面六件事能在自己的项目里说清楚,卷二就算读完了:
- 能为每个核心系统指出唯一写入者,并说明用什么约束挡住第二个写入者;
- 能列出所有写操作的幂等键,以及重复请求的返回语义;
- 能说明超时、部分成功、下游不可用时,系统分别返回什么、谁兜底;
- 能画出账号—登录—对局—结算—支付的关键链路,并指出哪一步允许最终一致;
- 能说清平台收了哪些能力、按什么维度隔离、SLA 如何按能力定义;
- 能把上述内容填进附录 B 的契约卡,并通过附录 C 的故障模式检查。