当前位置:首页 > 问答 > 正文

美团这次真是急了,Redis丢包问题终于被他们火速搞定了

(根据“技术社区热议”、“脉脉职场讨论”及部分技术博客信息综合)

互联网上关于美团的一次技术故障及其后续解决,引发了不小的讨论,事情大概是这样子的:就在前阵子,不少用户在使用美团APP时,隐隐感觉有些不对劲,点外卖时明明已经下单成功了,页面却卡在那里转圈圈,或者过一会儿提示失败,但银行卡里的钱却扣了;又比如,查看商家信息时,加载速度比平时慢了不少,偶尔还会刷不出图片来,这些现象时有时无,不像全站瘫痪那么严重,但就像鞋子里的一粒小石子,让用户体验大打折扣。

美团这次真是急了,Redis丢包问题终于被他们火速搞定了

很快,一些内部消息和技术社区的帖子开始流传开来,据“脉脉”上一些自称美团员工的用户透露,问题的根源指向了一个核心的缓存系统——Redis,Redis可以理解为美团整个系统里的“超级临时记忆库”,用户的登录状态、热门商家的菜单、优惠券信息等等大量需要快速读取的数据都放在这里,当用户打开APP,系统会优先从这个“记忆库”里取数据,这样速度才快,但问题是,这个“记忆库”好像出了点状况,出现了“丢包”现象,简单说,就是系统往Redis里存的数据,或者从Redis里取数据的时候,莫名其妙地丢失了一小部分,或者延迟非常高,导致上游的应用程序要么拿不到正确数据,要么等了半天没回应。

美团这次真是急了,Redis丢包问题终于被他们火速搞定了

这可把美团的工程师们急坏了,因为这种间歇性的、局部的问题最难排查,它不像服务器彻底宕机那样目标明确,而是像一场“幽灵故障”,一会儿在这里出现,一会儿在那里消失,有技术博客分析认为,这可能与当时某个基础设施的底层网络波动有关,也可能是Redis集群在承载巨大流量时,某些节点出现了不稳定的情况,对于美团这样日活数亿的超级APP来说,每秒的请求量都是天文数字,即便是万分之一的“丢包”率,放大到全站,影响的用户数量和订单量也是极其可观的,据说,内部的技术团队压力巨大,相关部门的负责人更是连夜被叫起来开会,整个团队进入了“火速攻坚”状态。

所谓“火速搞定”,根据各方零散的信息拼凑,美团的技术团队大概是这么做的:肯定是全方位的监控告警系统发挥了作用,他们需要快速定位到到底是哪个具体的Redis集群、哪个机房、甚至哪台机器先出现的问题,就是细致的根因分析,像侦探一样排查一切可能性:是网络带宽满了?是硬件故障?还是Redis本身的某些配置在高压下出现了瓶颈?有消息称,他们可能采取了多种措施组合拳,紧急优化了Redis的持久化策略,减少在高峰期的性能消耗;对集群架构进行了临时的流量调度,把有问题的节点负载分担到健康的节点上;还可能对一些关键业务的代码进行了热更新,增加了更多的容错和重试机制,确保即使偶尔从Redis取数失败,也能有备选方案保证核心流程不出错。

经过一番紧张的抢救,问题终于在相对较短的时间内得到了控制和解决,服务恢复了正常,用户的吐槽声也渐渐平息下去,这次事件虽然给美团提了个醒,但也从侧面展示了其技术团队的应急响应能力,在当今这个一刻也离不开手机应用的时代,任何一家大厂面对这样的技术挑战,可以说都是在“走钢丝”,美团这次算是“有惊无险”地度过了这次危机,这也让外界看到,即便是像美团这样的巨头,其背后支撑的庞大技术系统,也是无比复杂且脆弱的,需要工程师们时刻保持警惕,不断优化,才能保证我们每天都能顺利地“点个外卖”。