《游戏服务端架构·核心系统与契约》4.2 分线、副本与主城/野外
主城装不下就开分线,副本要独立规则,SLG 的大地图分片却不是分线。本节区分四种“世界切开”的方式,给出跨线迁移的冻结、令牌与 epoch 协议,讨论容量阈值、迟滞与回收策略如何避免频繁抖动,并用可运行的 Go 包演示状态归属与旧线拒绝写入。
tag
主城装不下就开分线,副本要独立规则,SLG 的大地图分片却不是分线。本节区分四种“世界切开”的方式,给出跨线迁移的冻结、令牌与 epoch 协议,讨论容量阈值、迟滞与回收策略如何避免频繁抖动,并用可运行的 Go 包演示状态归属与旧线拒绝写入。
《裂隙战场》《群岛纪元》《泡泡工坊》三个场景的 AOI 选型不能只看数据结构排名。本节先按在线人数、视野半径和同步频率估算消息量,再对比九宫格、十字链表与空间索引的实现成本、边界穿越和动态实体适应性,并给出从网格切换到空间索引的触发条件与可运行代码。
从《裂隙战场》节点“还有空闲内存却开不出房”的现象出发,说明实例分配器的赛区、版本、资源规格硬约束,比较冷启动、固定暖池与弹性暖池的成本,拆解正常结束、异常退出、节点故障三条回收路径与装箱碎片的具体成因和应对办法,并给出可运行 Go 实现。
从《泡泡工坊》房间进程重启后的幽灵房间讲起,给出创建、等待、填充、运行、结算、回收六态状态机,说明租约、epoch、幂等键与对账扫描如何发现并安全回收幽灵房间,并讨论结算落库与资源释放的先后顺序,说明回收时如何避免误杀正常对局,并给出可运行 Go 实现。
从《裂隙战场》的排队投诉出发,拆解匹配窗口的放宽顺序、可解释的质量指标和跨区延迟预算;对比竞技、SLG、休闲三款产品的不同取值,分析深夜人口不足时的兜底动作与复盘口径,并给出可运行的 Go 分段队列实现、party 不可拆分约束与表驱动测试。
开服洪峰与日常登录不是同一个问题:总量、斜率与重试放大都不同。排队管理预期,限流保护后端,两者不能互相替代。本节给出令牌桶加租户公平队列、位置与等待估算、超时与去重,比较限流放在边缘、网关或账号服务的代价,并说明如何避免排队、超时、重试、更拥堵的正反馈。
网关只终结连接、认证、路由和限流,不承载玩法。真正的难题是连接归属放在哪:网关本地表、共享存储还是 rendezvous 计算。本节比较三种归属方案的故障代价,给出加权 rendezvous 路由、节点摘除后的重分配与归属令牌校验的可运行实现。
登录票据与会话令牌常被混为一谈:前者单次、短暂、绑定网关,后者长期、可续期、需要吊销。本节拆开两者的生命周期,比较自包含令牌与查库校验的代价,给出滑动过期加绝对天花板、并发续期版本号、全端下线与时钟偏移处理的可运行实现,并划定令牌泄露与跨游戏复用的边界。
账号能被认出来之后,服务端还要回答这次登录是否可信、找回请求能否放行。本文把设备变化、异地、失败频次与行为异常折算成可解释的风险分,给出放行、挑战、阻断三档动作与带期限的锁定策略,讨论找回证据各自能证明什么,并用 internal/accountrisk 的 Go 实现、审计记录和五组表驱动测试说明风控如何避免变成永久封禁。
渠道登录把 open_id、union_id、游客设备和平台账号四类标识同时带进服务端,绑定表稍有不慎就会产生影子账号、重复账号和无法解绑的死号。本文讨论 provider、租户与外部主体组成的唯一键,绑定、解绑、换绑与影子账号收编的语义边界,并用 internal/identitylink 的 Go 实现和五组表驱动测试说明幂等与冲突处理。
《裂隙战场》《群岛纪元》《泡泡工坊》共用账号底座后,客服工单暴露出账号、角色、设备与租户四层被混为一谈。本文拆开四层模型的责任边界,给出主键与软删除口径、同租户合并与跨租户迁移的分界、注销宽限期与墓碑保留策略,并用 internal/account 的 Go 实现和五组表驱动测试说明每次状态跃迁的代价。
《游戏服务端架构》卷二《核心系统与契约》全 45 篇的阅读入口:说明本卷要解决的四个问题、十三章结构、三款产品的系统差异、序/前言/附录与三条阅读路径,并给出可运行性口径、各章核心内容速查和 39 篇正文的完整目录,便于按角色跳读,并标注三条路径的预计用时。
本篇交代卷二的技术基线、案例构造、13 章对应的 Go 验证包、L1 到 L4 的可运行性口径与数字证据规则,并给出按角色阅读、各章验证包与本地复现命令,说明怎样把系统契约写成能跑、能查、能被评审的产物,便于逐章复现与评审,并标注每条结论的证据等级。
卷一定下了拓扑,卷二才进入真正的工期:账号归谁、结算怎么不重不漏、平台和游戏各自负责什么。这篇序说明卷二与卷一、与《MMO 服务器开发》的分工,给出贯穿三款产品的系统差异、本卷的六组系统与四个写作立场,并把每节契约落成可运行的 Go 夹具。
《游戏服务端架构》卷二全 45 篇:沿账号、登录、匹配、房间、战斗、经济、社交、榜单、邮件、支付、平台十一条系统线,把数据所有权、幂等键、失败语义与 SLA 写成可检查的契约;含序、前言、目录、附录 A–C、四条阅读路径与可运行性口径,评审时可直接对照。
一页可执行的架构评审清单:从产品事实、质量属性、拓扑与状态归属,到连接与权威、部署单元与故障域、退出条件与复审触发;给出每项的合格判据、常见不合格表现、证据要求和评审会后的闭环动作,用来替代只凭直觉和职级拍板的评审方式。
卷一的最后一节不是总结,而是交接。把基线、风险、未决决策和待压测假设做成带阻塞判定的检查清单,列出卷二必须回答的五个问题及其卷一来源,并给出可运行的 Go 交接报告生成器,说明哪些未决项可以带条件放行、哪些必须留在一卷内解决,避免把延后误写成已完成。
把卷一分散在三款产品里的决策收进一张速查表:产品事实、五特征向量、拓扑选择、状态归属、连接与权威模型、部署单元、SLA、已知风险与复审触发条件,并给出矩阵的使用方法、平局规则和失效边界,方便评审时对照自己产品的参数重新填表。
汇总卷一反复使用的架构术语,按品类事实、拓扑与部署、状态与时间、连接与权威、竞技/SLG/休闲、表达与治理六组编排;每个词给出本书采用的口径、容易混淆的近义词和对应章节,便于评审时统一语言、避免同一个词在不同团队里指向不同东西。
把实时性、共享世界、房间制、状态规模、跨区需求五个品类特征,与五种拓扑做成带理由和代价的决策矩阵;每个格子标注推荐、可选或不推荐,再用北辰三款产品回填验证。配套 Go 包实现特征向量打分、成本平局裁决与 25 格完整性测试,并说明矩阵在什么条件下失效。