walikrence Blog

翻过那座山,人们就会听到你的故事

配表一列错位被 bool 静默转 true

表头红线门禁的设计

背景脱敏:一个棋牌项目,策划用 Excel 配表,经 xresloader 按 proto 定义转成 protobuf 二进制发布给客户端和服务端。一张锦标赛配置表的数据整列错位了一个多月没人发现,一个合并单元格让整个 xlsx 存不了 1.5 小时。两件事最后落成同一条门禁。 现象一:错位的数据看起来完全合法 锦标赛基础配置表的数据行从第 8 列起整体左偏两列,至少从 7 月起...

主干红 13 小时无人接管的结构性原因

自动化覆盖的盲区分析

背景脱敏:一个 Go 微服务仓库,主干上跑着三十多项静态门禁,配了两套自动化:一个「棘轮债务吸收 bot」负责把行数、复杂度类的新增违规吸进基线让主干秒级回绿,一个「流水线失败诊断员」负责给每次主干失败发归因卡片。9 月 3 日一条架构门禁把主干堵了约 13.5 小时、9 条流水线连红,两套自动化都在正常运行,却谁也没接。本文不写后来补的修复护栏(另有一篇),只写怎么找出这个盲区,以及...

一个大厅单体怎么退役

拆到网关和三个服务的六个阶段

背景脱敏:一个 Go 微服务棋牌项目。服务端有一个「大厅单体」,同时承担客户端长连接接入、登录会话、进厅首屏、进房撮合、上下行消息分发。它是所有玩法服务的必经之路,也是扩容和发版的瓶颈。本文记录从 7 月初立项到 8 月中旬删除本体的六个阶段,以及删完之后审计出来的遗漏清单。文中 MR 编号、环境名、玩法名已去除。 起点:一个进程,三种职责 7 月初摸底时,大厅单体是 98 个非...

一个限流 key 没有 TTL

整个后台被永久锁死

背景脱敏:一个基于 gin-vue-admin 搭建的海外运营管理后台,Go 服务端,按客户端 IP 做接口限流,计数存 Redis。2026-09-04 全站 API 被拒,提示语里出现了一个不可能的数字。 现象 首页静态资源能打开,所有 /api 请求一律返回: 请求太过频繁, 请 -1ns 秒后尝试 「-1ns 秒后」不是倒计时。等多久都没用,第二天依然如此。 取证...

门禁的耗时预算

为什么慢门禁的归宿是 --no-verify

背景脱敏:一个 Unity 手游客户端仓库,约 6.5 万个文件。项目没有可用的 CI runner,架构红线(文件 ≤ 300 行、程序集不得反向依赖、协议产物不得手工放置等)全靠本地 pre-push 钩子里的三十多个 Python 脚本把关。本文记录这套门禁从 6 项长到 38 项、耗时卡在 45~52 秒、三轮减负、最后演进到「默认不执行 + 每日全量巡检」的全过程。不站队,只...

协议线格式变更只有一个安全顺序

从一条日志判定顺序倒挂

背景脱敏:一个手游项目,客户端与服务端在两个独立 git 仓库,各自有各自的 CI。聊天服务走一条独立的 WebSocket 长连接,线格式原本是 JSON。一次改造要把上行切成 protobuf 二进制。本文记录这次改造怎么把线上聊天整条链路打断,以及为什么只需要看一行日志就能判定原因。 现象 2026-08-14 19:07,服务端聊天服务的日志开始每 100ms 刷一条: ...

监控告警里有 80 条从未响过

「配置加载成功」不等于「配置在工作」,以及怎么让机器替人验证

背景脱敏:某出海棋牌项目,Go 微服务跑在自建 K8s 上,监控栈是 kube-prometheus-stack,告警经 AlertManager 投递到飞书。两个月里陆续查出 80 条告警规则从上线那天起就没有响过一次:21 条是 Helm 占位符没被渲染,59 条是选择器空转。本文讲它们各自是怎么失效的,以及最后落成的一套「对着运行时验证」的机制。 现象:一台节点内存 97%,...

十万在线压测的十一层瓶颈

三次「口径不可比」的误判

背景脱敏:一个 Go 微服务架构的牌类游戏后端,正式服四个 8 核节点,目标是 10 万同时在线。从 8 月中旬到月底跑了二十多轮爬坡压测,撮合拐点从约 13k 推到峰值 152,983 在线。本文一半讲瓶颈是怎么一层层剥开的,另一半讲中途下错的结论:每一个都不报错、看起来有理有据,只有实测能证伪。 瓶颈是一层剥开一层的 容量工程没有「找到那个瓶颈」这回事。修掉一层,下一层立刻顶...

优雅停机排空

牌类对局中间不能断,滚动更新怎么做

背景脱敏:一个 Go 微服务架构的牌类游戏后端,约 20 个服务跑在 K8s 上,正式服每天三个定时批次全量滚动重启。牌类对局是强状态的:一桌四个人打到一半,承载这桌的进程被杀,这局就没了。本文记录怎么让游戏服在滚动更新时「打完手里这局再退」,以及中途踩到的几个反直觉的坑。 现象 改造前的实际状态很直白:Pod 层没有 terminationGracePeriodSeconds、...

lua与C++互相调用

lua安装 官网下载lua lua调用C++ C++调用lua