鼎盛数字推荐系统全量上线了。
韩路一刷到微博热搜的时候是下午三点。#鼎盛推荐系统抽风#,排第十七。
点进去,画风很统一。
「给我推婴儿车。我二十三,单身,养了条狗。」
「我的健身帐号刷出来全是保健品和助听器。」
「我看了一上午美食视频,首页给我推了个殡葬服务优惠。鼎盛大概觉得我吃太多了,提前帮我安排后事。」
评论区充满了快活的空气。
有人总结:「鼎盛的「猜你喜欢」应该改名「猜你是谁」,连我是谁都没搞清楚就开始猜了。」
韩路一没笑。
态规则引擎本身不至于这么离谱,推得不准是正常的,但推得这么驴唇不对马嘴,说明数据管道出了问题。他一行一行写出来的特征提取模块被砍掉之后,旧的用户画像格式和新引擎之间没人做适配,输入全是乱的。垃圾进,垃圾出。
推婴儿车不算什么。等数据管道的缓冲区吃满,后面的事就不好笑了。
第二天上午,微博上的吐槽变了味,热搜也冲到了第三。
最高赞:「打开,给我推了一屏幕情趣用品,我妈就站在旁边。我现在怎么跟她解释啊?」
有人发:「我在深圳,「猜你喜欢」给我推了一整页哈尔滨本地火锅店。问了个哈尔滨的哥们,他那边全是深圳奶茶店。我俩换号了?」
有人跟:「不止你们。我和我同事的推荐页一模一样。连顺序都一样。」
技术论坛这边也炸了。
一个ID叫「架构老狗」的资深开发者发了长帖:
「说句不好听的,这个推荐系统的改造路线非常眼熟。特征提取从动态权重退回静态规则,多模态融合模块砍得只剩文本维度,NullPointer上个月那篇《七个经典陷阱》,第三、第五、第七个,鼎盛全踩了。建议写个续集:《七个陷阱实战教程,由某大厂倾情演绎》。」
两小时一百三十多赞。
韩路一看了看自己那篇博客的阅读量。一万八。
窗外的天空灰得像没校色的显示器。雨还没下出来,空气闷得发黏。
还没人意识到真正的问题有多大。
到了晚上十一点半。
韩路一睡前又刷了一眼微博。
挂了两天的话题#鼎盛推荐系统崩了#,热度已经下去了。
一个新的话题,#鼎盛崩了#,冲到了热搜第一。
他点进去。二十分钟前,鼎盛系集体闪退,用户打开就白屏。
推荐系统的崩溃没有触发熔断。坏掉的模块像传染病一样顺着调用链往上爬,拖垮了依赖它的内容分发、搜索、首页加载,最后整条链路全死了。
十一点十五分鼎盛发了紧急公告。十一点陆续恢复上线,他们手动把推荐系统整个切掉了。
微博上有人贴了恢复后的截屏。首页干干净净,没有「猜你喜欢」,没有个性化推荐,没有千人千面。就一个光秃秃的货架。
「这是20吧?」
「鼎盛的推荐系统呢?去哪了?」
「切了。都用不了,你选哪个?」
韩路一打开视界。
【事件性质:系统级故障(无熔断→全链路雪崩)】
【根因:画像格式不适配→解析异常堆积→内存泄漏触发OOM→数据管道断裂→23%用户画像错乱→推荐模块崩溃未熔断→级联击穿全链路】
【影响范围:死机期间全量用户(峰值约1200万在线),当前降级运行中】
【当前状态:手动切断推降级运行】
【预测恢复周期:版本回退至原架构,约14天】
跟他的判断一模一样。
三月中旬他扫那个外包需求时看到的D-评级,一百四十个Bug,就指向这个结局。当时看到的是七十二小时。
从周一上午全量上线到周二晚上全线崩溃,还不到四十八小时。
比原本预估的还快了一天。
……
天亮之后的事,像多米诺骨牌。
有人翻出了韩路一一个月前那篇《推荐系统架构改造的七个经典陷阱》,发了一条帖子——