这里是全站文章的归档入口,下面是按时间倒序排列的全部文章。若想按主题浏览,请从首页的专题分类进入。
《游戏服务端架构·品类、状态与拓扑》3.2 大厅、房间与战斗:竞技品类的标准形态
《裂隙战场》的一次网络重试让同一名玩家占了两间房,崩溃客户端又留下 1400 间无人释放的幽灵房间。本节把竞技品类拆成无状态大厅、有状态房间与分配器三层,用带暖池、容量上限、租约过期和重复分配防护的 Go 实现,说明分配器能防住哪些幽灵,哪些必须由房间心跳兜底。
posts
这里是全站文章的归档入口,下面是按时间倒序排列的全部文章。若想按主题浏览,请从首页的专题分类进入。
《裂隙战场》的一次网络重试让同一名玩家占了两间房,崩溃客户端又留下 1400 间无人释放的幽灵房间。本节把竞技品类拆成无状态大厅、有状态房间与分配器三层,用带暖池、容量上限、租约过期和重复分配防护的 Go 实现,说明分配器能防住哪些幽灵,哪些必须由房间心跳兜底。
上架只是拿到入场券,平台内增长才是从 1 到 10 的部分。本篇拆解商店搜索的三个字段、评分从 4.2 到 4.7 的具体动作、推荐位的触发条件、商店页转化率的六个要素、更新节奏对曝光的影响,以及站外导流时不能碰的平台规则。
第一笔收入到账后,问题才真正开始:客户要发票、平台要 KYC、银行问资金来源。本篇给出五个「该注册了」的触发信号、个人/个体户/一人公司/海外实体的六维对照、注册前必须回答的八个问题,以及什么时候先别注册。
交易端不是「商品页加一个购买按钮」,而是浏览、下单、支付、售后四条失败边界完全不同的链路。本节逐条说明每条链路需要哪些数据、哪些字段必须由服务端裁决、失败时用户能退到哪里,并给出一个把四条链路的依赖写成常量与校验函数的 TypeScript 模型,作为 trade-lab 的起点。
从「回声」智能回复的选型争论出发,把模型能力拆成质量、延迟、成本、上下文与可控性五个维度,说明每个维度的产品口径与常见误读,并用 TypeScript 实现档案校验、混合成本折算与统一打分,附可运行测试,讨论五个维度在预算约束下如何互相换算。
libraryd 需要每天扫逾期、每月结算罚金。本节用 ScheduledExecutorService 的 fixedRate 与 fixedDelay 实跑对比:200ms 任务配 100ms 周期时,fixedRate 每约 200ms 才启动一次,fixedDelay 每约 300ms 一次;再说明周期任务抛异常会静默停止,以及如何用注入的 Clock 算出下一次整点执行时间。
在 arch-lab 内存订单服务上实现创建、查询、支付与开环 loadgen,用 1ms 桶延迟直方图真实跑 1500 请求每秒的基线;再用 mutex、CPU、alloc 三份 profile 指认“持锁调用下游”是瓶颈,并解释超时、重试与扣款未落库的证据。
《泡泡工坊》三个人的团队把登录、房间、经济和结算写进一个 main 包,第十八个月的一次促销结算拖垮了全部在线。本节把模块化单体拆成 auth、room、economy、settlement、ops 五个模块,用允许依赖表、依赖校验与三色环检测把边界变成 CI 门禁,并给出五条可量化的拆分触发条件。
在 arch-lab 订单系统实现副本路由、复制延迟跟踪、read-your-writes 回退主库和超预算降级;用 10 万次确定性延迟分布真实跑到 17%–19% 的回退率,并覆盖刚写完立即读、副本滞后、副本不可用、主库过载四类测试,最后区分哪些读可以陈旧、哪些绝不可以。
《群岛纪元》全球同服方案评审只给了团队四十八小时。本节还原评审桌上的三个争议,建立包含概率、影响、分值、负责人、触发信号与缓解动作的风险台账,区分“接受的风险”和“被卡住的决策”,并用 Go 代码实现评分、排序与 Top N,引用 ADR-005、ADR-006、ADR-007 说明每个风险对应的架构决定。
在 arch-lab 订单列表上实现 offset 与 keyset 分页并真跑 20 万行深分页对照,报告扫描行数与内存耗时;实现 N+1 检测器和批量加载,把 21 次查询降到 2 次;给出批大小、连接池、超时、重试的约束关系及订单接口参数上限,并说明内存基准为什么不能替代数据库测量。
一次关于《群岛纪元》匹配状态归属的评审吵了四十分钟没有结论,因为没人写下备选与后果。本节给出 ADR 的最小结构:背景、备选、决定、后果、退出条件与状态;用 ADR-005 匹配状态归属、ADR-006 结算幂等、ADR-007 全球同服时间模型三份真实记录示范被否决的备选和退出条件,并用 Go 校验器拒绝缺少退出条件的 ADR。
一份可以直接带进评审会的内容社交客户端清单:按面与状态归属、读路径、写路径、实时连接、降级、安全审核、可观测七组展开,每条给出判据、需要的证据与常见反模式,并附评审记录模板与一次完整评审示例,适合方案评审、版本复核、风险台账与评审前证据准备。
按用户症状组织的内容与实时排查手册:重复卡片、位置跳动、详情白屏、图片灰块、点赞回退、评论失败、上传卡住、消息丢失、未读数不准、审核态闪现、联想串结果。每条给出可观察信号、常见根因、验证步骤与修复方向,最后附一张总表,便于值班时按症状快速定位。
把短轮询、长轮询、SSE 与 WebSocket 放在同一张表里逐项对照:通信方向、成本、断线语义、鉴权方式与典型故障。附录给出每种通道的最小实现、Last-Event-ID 与心跳的处理方式,以及一张按产品约束与项目阶段选择通道的判定表。
在 arch-lab 订单表上实现 pg_stat_statements 风格慢查询解析器与等值-范围-排序索引候选启发式,用 5 行自制 fixture 做确定性测试;分析三条典型订单查询的索引取舍、写放大模型与「索引不是越多越好」的退出条件,并明确所有执行计划样例均为 fixture 而非 PostgreSQL 18.4 实测。
北辰工作室把“低延迟、强一致、低成本、快迭代”全写成 P0,评审直接卡住。本节用来源、刺激、制品、环境、响应、度量六要素,为《裂隙战场》《群岛纪元》《泡泡工坊》各写四条可测质量属性场景,做一张延迟、一致性、成本与可修改性的取舍矩阵,并用 Go 代码校验场景完整性、统计覆盖缺口,最后说明为什么没有架构能同时满足全部属性。
对独立开发者来说,合规不是等律师,而是上架前必须做完的产品约束。本篇给出隐私政策的最小结构、数据最小化的落地方法、数据流图与子处理者清单、GDPR/CCPA/PIPL 的最低交集、平台封禁的常见原因与申诉流程,以及插件分发时的开源许可边界。
ai-lab 把「回声」的五个能力写成一份可校验清单:智能回复、搜索重排、长文摘要、审核分类、客服辅助,每个能力都固定输入输出、质量下限、延迟与成本预算和失败语义;本节给出清单校验器的可运行 TypeScript 实现与测试,并说明后面十二章如何围绕这份清单展开。
用北辰工作室三款产品对照五种服务端拓扑:模块化单体、大厅加房间、分区世界、全球同服与专用服池;把并发、会话时长、实时性、共享世界、匹配制与地域敏感六个产品事实写成可执行的选型函数,说明为什么拓扑只是第一版决策,并给出三份 ADR 的退出条件。