管理层们如蒙大赦般退开,陆泽绷紧的肩线肉眼可见地松弛了半分。</br>
陈默走到他身后,这个高级工程师再次紧张,后颈的绒毛都竖了起来。</br>
“集群状态?”陈默问。</br>
“锁…锁服务主节点CPU100%,子节点拒绝握手。”陆泽声音发颤,“仲裁日志显示同步延迟超阈值,触发自锁。”</br>
“还…还在查。”一滴汗砸在键盘上。</br>
陈默俯身,手指划过屏幕调出网络流量热力图。</br>
代表数据中心内部东西向流量的区域正燃烧着病态的深紫。“BGP协议流量激增三百倍,”他指尖敲在紫斑中心,“查这个异常节点,现在。”</br>
陆泽像抓住救命稻草,手指终于落向键盘。</br>
命令行的白光在他瞳孔里跳动。</br>
五分钟后,嘶哑的汇报响起:“是…是物料追溯子系统!它在疯狂广播路由更新!”</br>
一直沉默的徐双龙猛地抬头:“不可能!那模块上周刚做完负载均衡切割!”</br>
“但路由表的确在爆炸性增长!”陆泽调出滚动的路由表日志,屏幕被疯狂的“UPDATE”指令淹没。</br>
陈默眼神一凛:“切到备份区独立链路,物理隔离故障节点。”</br>
徐双龙扑向控制台执行指令。</br>
三分钟后,主屏幕上代表网络风暴的紫斑开始消退,但APS核心集群的绿色波浪线依旧是一条死寂的直线。</br>
“锁服务还是没活!”彭聪一拳砸在控制台上。</br>
“内存泄漏源没掐断。”陈默目光如扫描仪般掠过陆泽的屏幕,“dump出锁服务进程堆栈,过滤‘MaterialTrace’关键字。”</br>
陆泽依言操作。</br>
海量的内存地址与十六进制码中,一行刺目的报错被高亮捕获:</br>
[FATAL] MaterialTrace JVM heap overflow - HashMap resize deadlock</br>
“哈希表死锁?”徐双龙失声,“这模块的代码审计是我亲自做的!负载测试时百万级物料条目都…”</br>
他的话戛然而止。</br>
陈默已经调出某个开发项目数据库切换日志。</br>
一条记录如冰锥刺入眼帘:</br>
2017-06-27 23:58:11 物料主数据表完成从Oracle到GaussDB的在线迁移。</br>
死寂。</br>
只有空调风口的嘶鸣在指挥厅回荡。</br>
所有人都明白了。</br>
压力测试清空了数据,却没重置物料表迁移后触发的自增长索引阈值。</br>
当子系统的JVM试图扩容HashMap以容纳新的物料ID段时,撞上了分布式锁的同步机制,两个核心模块在内存的修罗场里同归于尽。</br>
“修复方案?”陈默的声音听不出波澜。</br>
“重启锁服务集群,强制清除死锁。”张锐语速急促,“但数据一致性会崩!排程引擎可能输出冲突指令,引发产线混料!”</br>
“先恢复生产。”陈默斩钉截铁,“数据修复窗口我向左董要。”</br>
他拿起专线电话。</br>
拨号音只响半声便被接通。</br>