《游戏服务端架构·规模化、全球化与成本》5.1 本地缓存、分布式缓存与多级缓存
从《群岛纪元》跨服榜单读到旧名次的事故切入,按配置表、玩家快照、榜单、社交关系四类对象划分本地与分布式缓存职责,比较两级缓存的失效路径与写入权归属,说明广播丢失后的版本水位、可疑标记与重同步兜底,并给出可运行 Go 实现、表驱动测试与失败模式清单。
tag
从《群岛纪元》跨服榜单读到旧名次的事故切入,按配置表、玩家快照、榜单、社交关系四类对象划分本地与分布式缓存职责,比较两级缓存的失效路径与写入权归属,说明广播丢失后的版本水位、可疑标记与重同步兜底,并给出可运行 Go 实现、表驱动测试与失败模式清单。
《群岛纪元》的联盟名单按公会切、联盟仓库却按玩家切,一次跨服报名要扫 16 个分片。本节比较玩家、账号、区服、公会四种分片键的热点与共置后果,给出读扩散与写扩散的选择,并用可运行的 Go 目录表校验共置承诺、估算分片偏斜,最后给出热点分片的兜底手段。
《群岛纪元》的全球客服与支付对账,把同一张玩家表里的身份、支付、日志和回放推到了不同区域的合规边界。本文按数据类别而不是按表定义驻留规则,比较区域内闭环、脱敏汇聚与授权传输三种机制,说明只读副本、跨区注销与墓碑保留的边界,并附 internal/dataregion 的 Go 实现与六组表驱动测试。
《裂隙战场》的跨区观战和《群岛纪元》的全球集结,把端到端延迟拆成接入、区域间与存储三段。本文给出三款产品的示例预算表、客户端测速与登录下发网关列表的组合方式,以及跨区组队把两个区域绑在一起时的降级边界,并附 internal/latencybudget 的 Go 实现与五组表驱动测试。
从《裂隙战场》凌晨缩容导致早场排队、结算前强制迁移的两次事故出发,比较直接关机、停止新开与排空后超时强制三种做法,给出对局、大厅与世界服的体验分级、缩容迟滞判定和预留加按需的分层成本估算,并附一个可运行、可测试的 Go 排空状态机与成本模型。
从《泡泡工坊》开服洪峰房间创建 P99 从 4 秒涨到 38 秒的现场出发,拆解镜像拉取、进程启动、配置加载与预热四段冷启动成本,说明暖池水位、预热深度、租借超时与归还协议如何共同决定扩容速度,并给出带状态机、可运行、可测试的 Go 暖池实现。
从《裂隙战场》扩容后房间仍然创建失败的现场出发,比较物理机、虚拟机、容器与专用进程在 UDP 端口、CPU 绑定、大页和内核参数上的约束差异,说明端口唯一性、版本匹配、亲和与故障域打散应放进调度器还是留给服务,并给出带失败原因编码的可运行 Go 放置器。
余量不是 30%,而是“掉一个可用区、来一次活动、发一次坏版本”时还能不能接住。本文对比自底向上与自顶向下两种容量模型,给出 CPU、内存、带宽、连接四层的估算方法,把 N+1、故障域、活动、发布四类余量写成可校验的故障场景,并用 Go 实现分层利用率、瓶颈定位、余量校验与扩容触发时间计算。
机器人压测最常见的结果是“通过了”,最常见的原因是机器人替服务器排了队。本文比较脚本化、录制回放、模型驱动三类行为模型的真实度与成本,讨论影子集群、只读副本与压测标记账号的隔离做法,并给出时间压缩、并发放大与依赖打桩的处理边界;最后用 Go 实现速率曲线、开放环到达与排队占比统计。
“在线十万人”回答不了能开多少房间、一次登录洪峰要几台机器。本文把承载能力拆成 PCU/CCU、房间数、tick 预算、消息速率、登录与匹配 QPS、广播扇出六类指标,给出北辰三款产品的指标台账与 1 分钟/5 分钟峰值口径,并用 Go 实现滑窗峰值、Little 定律换算和按维度隔离的指标账本。
卷三全 45 篇目录与阅读路径:按容量与弹性、地域与状态、数据与缓存、异步与跨服、容灾与成本、合规与收口六段组织,给出服务端工程师、技术负责人、平台团队与产品运营四条路线,以及每章对应的 Go 验证包和可运行性口径。并说明导航约定与编号口径。
本篇交代卷三的技术基线、案例构造、13 章对应的 Go 验证包、L1 到 L4 的可运行性口径、数字证据规则,以及按角色阅读与本地复现方式,说明容量、地域与成本这类规模决策如何落成容量表、状态机、评分矩阵等可检查产物。并给出各章验证包与本地复现命令。
卷二把每个核心系统的契约写清楚之后,规模、全球化与成本会重新改写这些契约。本序说明卷三为什么必须单独成卷、要回答的四个问题、与《MMO 服务器开发》的分工,以及三款产品在规模化阶段暴露出的真实矛盾与阅读方式。并说明按角色的阅读顺序与本书的写作边界。
《游戏服务端架构》卷三索引:13 章 39 节正文加序、前言、目录与三个附录,讨论容量与弹性、多地域与全球同服、分片与再均衡、缓存与异步、跨服与容灾、成本与合规,并给出四条阅读路径、完整目录、导航约定、全卷验收标准与本地复现口径,便于按角色选择入口。
把卷二十三个核心系统常见的失败模式收进一张可查的表:症状、触发条件、影响面、可探测性、兜底动作与责任方,并给出跨系统故障链、最小可观测集、演练方法与一页纸复盘模板,清单可直接用于评审、事故复盘与演练设计,每条给出责任方与兜底动作,并附一页纸复盘模板。
一份可直接用于评审的系统契约模板:数据所有权、读写权限、幂等键、一致性窗口、失败语义、SLA、保留期与降级责任,并给出账号、结算、支付、平台四个填写示例和常见错误清单,帮助团队把口头约定变成可检查的条目,并说明契约卡与故障清单如何配合使用。
把 northstar-platform 对三款产品开放的核心接口收成一张速查表:账号、登录、匹配、房间、结算、经济、社交、榜单、邮件、支付、合规与数据,逐项列出调用方式、幂等键、一致性窗口、典型错误与降级语义,并给出统一错误分类和职责边界。
卷二收口不是把所有问题都回答完,而是把没回答的问题标出来。本节整理容量、跨区、成本、多地域四类未决项,给出进入卷三前必须有基线的检查点、measured 与 estimated 的判定规则,并附一个拒绝在无测量情况下放行全球化的可运行 Go 包。
把账号、对局、经济、社交、榜单、支付等核心系统的数据归属收进一张总表:谁拥有、谁可读、保留多久、由谁删除;给出越权写入的禁止清单与事件、API、对账三种跨系统通道,讲解保留期起算与删除传导,并附一个检测直写、未登记通道和拓扑漂移的可运行 Go 包。
把三款产品对十项平台能力的使用方式、SLA、降级策略和责任方收进一张矩阵,区分共用实现、共用接口与各自实现,并用差异原因把品类差异和历史包袱分开;附一个校验完整性、关系一致性、owner 冲突与统计口径的可运行 Go 包,让矩阵能在评审和 CI 里被检查。