posts

《游戏服务端架构·核心系统与契约》 · 全书目录与章节索引(45 篇)

《游戏服务端架构》卷二全 45 篇:沿账号、登录、匹配、房间、战斗、经济、社交、榜单、邮件、支付、平台十一条系统线,把数据所有权、幂等键、失败语义与 SLA 写成可检查的契约;含序、前言、目录、附录 A–C、四条阅读路径与可运行性口径,评审时可直接对照。

《游戏服务端架构》是一套四卷本:卷一《品类、状态与拓扑》、卷二《核心系统与契约》、卷三《规模化、全球化与成本》、卷四《平台化与架构治理》。本页是卷二的完整目录,共 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.11.1 账号、角色、设备与租户四层身份模型、账号合并与注销、租户隔离与删除传播
1.21.2 第三方登录与账号绑定外部身份映射、绑定/解绑语义、影子账号与幂等
1.31.3 账号安全、找回与风控风险信号、放行/挑战/阻断、找回边界与审计

第 2 章 登录与网关

节文章核心内容
2.12.1 登录态、票据与续期一次性票据与会话令牌、滑动/绝对过期、吊销与并发续期
2.22.2 网关路由与连接归属网关职责、rendezvous 路由、节点摘除与归属对账
2.32.3 登录排队、限流与开服洪峰排队语义、公平性与等待估算、拒绝与退避、重试放大

第二部分:对局与战斗(第 3–5 章)

第 3 章 匹配与房间

节文章核心内容
3.13.1 匹配算法与公平性分段与窗口扩展、队伍与延迟、匹配质量与等待取舍
3.23.2 房间生命周期与幽灵房间房间状态机、租约与心跳、幽灵检测、结算交接
3.33.3 实例分配、暖池与回收租约分配、暖池与冷启动、故障回收、资源碎片

第 4 章 场景与世界

节文章核心内容
4.14.1 AOI 选型:九宫格、十字链表与空间索引先算消息量、三种方案对照、同步模型与切换触发
4.24.2 分线、副本与主城/野外分线代价、迁移一致性、副本与共享世界边界、容量滞回
4.34.3 世界事件与全服广播扇出估算、事件分级、分区订阅、去重与补发

第 5 章 战斗与结算

节文章核心内容
5.15.1 战斗服模型:房间内、旁路与托管三种模型、tick 与故障域、崩溃恢复语义、选型判据
5.25.2 结算契约与防重复发奖结算单状态机、幂等键、先落单再发奖、改判与冲正
5.35.3 战斗日志、回放与审计日志分级、确定性回放 vs 记录回放、审计查询

第三部分:经济与成长(第 6–7 章)

第 6 章 经济与交易

节文章核心内容
6.16.1 货币、产出与消耗货币分层、来源标签、双分录账本、对账频率
6.26.2 交易托管、冻结与回滚托管状态机、冻结与可用余额、并发与跨服交易
6.36.3 经济风控与价格指数异常信号、价格指数的局限、处置手段与申诉

第 7 章 成长与任务

节文章核心内容
7.17.1 属性、成长与状态机属性来源分层、计算顺序、成长状态机与非法迁移
7.27.2 任务事件与进度服务上报 vs 订阅、进度去重、跨天补算、并发完成
7.37.3 每日重置、时区与赛季重置边界、幂等与补做、赛季切换与未领奖励

第四部分:社交与运营(第 8–10 章)

第 8 章 社交与公会

节文章核心内容
8.18.1 好友、黑名单与关系一致性有向关系模型、双向一致性、删除清理、跨服边界
8.28.2 公会、权限与仓库RBAC、权限版本、仓库并发、解散与合并清算
8.38.3 聊天频道、审核与限速频道扇出、限速与刷屏、审核位置、误封申诉

第 9 章 排行榜与赛季

节文章核心内容
9.19.1 榜单模型与分段榜单类型、分段与同分规则、写模型选择
9.29.2 写缓冲、结算与赛季边界批量刷榜、截止快照、幂等结算、赛季切换读一致性
9.39.3 榜单的读模型与缓存整榜/分页/个人名次缓存、偏差窗口、热点降级

第 10 章 邮件与奖励

节文章核心内容
10.110.1 邮件投递与去重投递模型、去重键、全服扇出、重试与死信
10.210.2 附件、过期与流拍结算附件状态机、过期策略、背包满处理、资产归属
10.310.3 批量领取、补偿与红点批量领取语义、补偿批次、红点计数一致性

第五部分:支付与平台(第 11–12 章)

第 11 章 支付与合规

节文章核心内容
11.111.1 支付渠道与发货幂等订单状态机、验签、回调去重、发货幂等
11.211.2 退款、对账与差异处理退款状态机、差异分类、自动冲正与人工挂账
11.311.3 防沉迷、实名与未成年人保护判定与执行分离、数据最小化、留存与删除传导

第 12 章 平台服务化

节文章核心内容
12.112.1 账号、支付、社交、数据平台的职责能力清单、收进平台的判据、平台与游戏的边界
12.212.2 多游戏复用与租户隔离租户模型、隔离维度、配额与 noisy neighbor、版本兼容
12.312.3 平台 SLA 与产品团队的契约分能力 SLA、变更与回滚承诺、责任边界与联合响应

第六部分:收口(第 13 章)

第 13 章 卷二收口

节文章核心内容
13.113.1 三款产品共用平台的契约矩阵十项能力的共用方式、SLA 与降级责任、矩阵读法
13.213.2 系统边界与数据所有权总表数据所有权、越权写入清单、与卷一拓扑基线对照
13.313.3 进入卷三:规模与全球化未决问题、就绪检查点、进入规模化前的测量要求

与现有专题的关系

卷二与站内两个方向互补,不重复:

读完卷二的验收标准

如果下面六件事能在自己的项目里说清楚,卷二就算读完了:

  1. 能为每个核心系统指出唯一写入者,并说明用什么约束挡住第二个写入者;
  2. 能列出所有写操作的幂等键,以及重复请求的返回语义;
  3. 能说明超时、部分成功、下游不可用时,系统分别返回什么、谁兜底;
  4. 能画出账号—登录—对局—结算—支付的关键链路,并指出哪一步允许最终一致;
  5. 能说清平台收了哪些能力、按什么维度隔离、SLA 如何按能力定义;
  6. 能把上述内容填进附录 B 的契约卡,并通过附录 C 的故障模式检查。

相关阅读

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

《游戏服务端架构·核心系统与契约》附录 C 核心系统故障模式清单

把卷二十三个核心系统常见的失败模式收进一张可查的表:症状、触发条件、影响面、可探测性、兜底动作与责任方,并给出跨系统故障链、最小可观测集、演练方法与一页纸复盘模板,清单可直接用于评审、事故复盘与演练设计,每条给出责任方与兜底动作,并附一页纸复盘模板。

8 分钟阅读
书稿 游戏服务端 架构设计
books

《游戏服务端架构·核心系统与契约》13.2 系统边界与数据所有权总表

把账号、对局、经济、社交、榜单、支付等核心系统的数据归属收进一张总表:谁拥有、谁可读、保留多久、由谁删除;给出越权写入的禁止清单与事件、API、对账三种跨系统通道,讲解保留期起算与删除传导,并附一个检测直写、未登记通道和拓扑漂移的可运行 Go 包。

9 分钟阅读
书稿 游戏服务端 架构设计
books

《游戏服务端架构·核心系统与契约》13.1 三款产品共用平台的契约矩阵

把三款产品对十项平台能力的使用方式、SLA、降级策略和责任方收进一张矩阵,区分共用实现、共用接口与各自实现,并用差异原因把品类差异和历史包袱分开;附一个校验完整性、关系一致性、owner 冲突与统计口径的可运行 Go 包,让矩阵能在评审和 CI 里被检查。

8 分钟阅读
书稿 游戏服务端 架构设计
books

《游戏服务端架构·核心系统与契约》12.3 平台 SLA 与产品团队的契约

平台与产品团队真正会争吵的是事故之后:99.9% 的可用性按哪条链路算,平台发版造成的失败算谁的预算,延迟 SLA 的分母要不要包含失败请求。本文把可用性、延迟、吞吐与恢复时间拆成可计算条款,给出错误预算、燃烧率与违约判定的 Go 实现,并说明变更通知、灰度窗口和回滚承诺怎么写进契约。

7 分钟阅读
书稿 游戏服务端 架构设计
books

《游戏服务端架构·核心系统与契约》12.2 多游戏复用与租户隔离

《群岛纪元》的一次全服活动把平台数据库打满,另外两款游戏的登录同时抖动;渠道服又要求按渠道隔离存档。本文比较逻辑隔离、schema 隔离与库隔离的代价,给出 game/channel/env 三元组、跨租户拒绝与按租户配额的 Go 实现,并说明平台升级时旧版本游戏如何不被破坏。

8 分钟阅读
书稿 游戏服务端 分布式系统
books

《游戏服务端架构·核心系统与契约》12.1 账号、支付、社交、数据平台的职责

北辰三款产品共用 northstar-platform 后,最先吵起来的不是技术选型,而是边界:哪些能力该收进平台、平台交付的是能力还是数据、玩法规则能不能顺手放进去。本文用复用度、合规、故障影响面和团队归属四条判据划边界,并给出能力注册表与依赖方向校验的可运行实现,解释平台为什么会退化成第二个游戏服。

8 分钟阅读
书稿 游戏服务端 架构设计
books

《游戏服务端架构·核心系统与契约》11.3 防沉迷、实名与未成年人保护

《泡泡工坊》一名未成年人用家长账号充值后,家长要求退款;同一时间实名服务超时,三款游戏各自判断,出现了“这个服能玩、那个服不能玩”。本节区分合规判定与执行,说明实名年龄带、可玩时段、单笔与月度限额的输入与可信度,给出数据最小化、留存与删除传导的边界,并附可运行的 Go 判定服务片段。

9 分钟阅读
书稿 游戏服务端 架构设计
books

《游戏服务端架构·核心系统与契约》11.2 退款、对账与差异处理

《群岛纪元》一名玩家被渠道强制退款时,游戏内金币早已转给其他角色;财务对账又发现三笔渠道已扣款、内部却没有订单。本节说明退款状态机、资产回收顺序、渠道账单与内部订单的匹配键,给出漏单、重复、金额不符、状态不同步的分类与冲正/复核/挂账边界,并附可运行的 Go 对账分类片段。

8 分钟阅读
书稿 游戏服务端 架构设计
books

《游戏服务端架构·核心系统与契约》11.1 支付渠道与发货幂等

《泡泡工坊》上线首日,支付渠道重复回调让同一笔 6 元订单发了两次货,客服只能按截图手工补单。本节拆解下单、回调、验签、发货与通知的状态机,比较同步发货和先记账后异步发货,说明订单号与渠道单号的绑定、事件去重与发货重试的边界,并给出可运行的 Go 回调处理与幂等发货片段。

7 分钟阅读
书稿 游戏服务端 架构设计
books

《游戏服务端架构·核心系统与契约》10.3 批量领取、补偿与红点

一键领取看似只是循环调用单封领取,真正的问题是部分成功如何表达、失败要不要回滚、补偿怎样避免重复,以及红点计数怎样和邮件列表保持一致。《裂隙战场》的赛季结算、《群岛纪元》的全服补偿、《泡泡工坊》的日常奖励,都需要同一套批量语义。本节给出批量领取结果模型、补偿幂等键与审计日志,以及由同一份列表派生的红点聚合。

10 分钟阅读
书稿 游戏服务端 架构设计
books

《游戏服务端架构·核心系统与契约》10.2 附件、过期与流拍结算

邮件正文可以永久可读,附件却是有归属、有期限的资产。《裂隙战场》的赛季奖励、《群岛纪元》的联盟补给、《泡泡工坊》的限时礼包,都要回答领取是否原子、过期后归谁、背包满时怎么办。本节给出附件状态机、过期扫描与宽限期、三种结算策略,并附可运行的领取幂等与流拍结算代码。

10 分钟阅读
书稿 游戏服务端 架构设计
books

《游戏服务端架构·核心系统与契约》10.1 邮件投递与去重

《裂隙战场》的结算邮件、《群岛纪元》的全服补偿、《泡泡工坊》的登录奖励,都要求同一业务事件只产生一封邮件。本节比较直写、消息队列与批量扇出三种投递模型,拆解事件 ID、模板与收件人组成的去重键,说明重试、死信和全服邮件游标如何避免重复与漏发,并给出可运行的幂等投递队列。

9 分钟阅读
书稿 游戏服务端 分布式系统
books

《游戏服务端架构·核心系统与契约》9.3 榜单的读模型与缓存

榜单是读多写少的典型:整榜、分页和“我的排名”会被反复刷新。本节比较整榜缓存、分页缓存和个人名次缓存的收益与失效成本,讨论缓存版本落后时玩家看到的名次偏差,给出热点榜的降级、有界缓存与惊群处理策略,并实现一个带版本失效、过期兜底和统计计数的读模型。

8 分钟阅读
书稿 游戏服务端 架构设计
books

《游戏服务端架构·核心系统与契约》9.2 写缓冲、结算与赛季边界

结算高峰的写入不能一条条落到榜单。本节把写缓冲、赛季截止和奖励结算放在同一条时间线上:哪些写入可以合并,在途写入如何进入封榜快照,重复结算如何靠回执摘要识别,旧榜只读与新榜初始化怎样切换,并给出一个带截止校验、不可变快照、冲突检测和幂等结算的可运行实现。

8 分钟阅读
书稿 游戏服务端 分布式系统
books

《游戏服务端架构·核心系统与契约》9.1 榜单模型与分段

《裂隙战场》《群岛纪元》《泡泡工坊》的榜单需求并不相同。本节把榜单拆成受众、分区、分段和同分排序四个维度,比较有序集合、最大堆与分桶计数的更新成本,说明只展示 Top N 时如何保留精确名次,并给出一个带分段策略、确定性排序和输入校验的可运行榜单模型。

9 分钟阅读
书稿 游戏服务端 架构设计
books

《游戏服务端架构·核心系统与契约》8.3 聊天频道、审核与限速

《裂隙战场》《群岛纪元》《泡泡工坊》的聊天频道在扇出、隔离和治理上完全不同。本节比较世界、战区、公会与私聊四种频道的路由边界,说明令牌桶、跨频道去重和全局桶如何拦住刷屏,并讨论发送前、发送后与异步复核三种审核位置及误封申诉,附可运行的频道路由与审核钩子实现。

7 分钟阅读
书稿 游戏服务端 架构设计
books

《游戏服务端架构·核心系统与契约》8.2 公会、权限与仓库

《群岛纪元》的公会仓库要同时面对会长、官员、成员三种角色,以及多人同时取物、权限变更和解散清算。本节把角色还原为权限位,比较硬编码角色、权限位和策略引擎三种方案,给出 Begin/Commit 票券式并发契约与可运行的仓库事务实现,并讨论解散和合并时资产如何不丢不重。

7 分钟阅读
书稿 游戏服务端 架构设计