邮件太多了:3/25/26 语音故障幕后解析
本文深度解析了 Discord 在 2025 年 3 月 25 日至 26 日期间发生的语音服务中断事故。问题源于内部监控系统(邮件通知)过度触发,远超预期容量,导致 Redis 基础设施不堪重负,进而引发连锁反应,最终造成全球语音服务大面积不可用。团队从架构、监控和应急响应等多个维度复盘了此次事故的根因与教训。
背景速读
- Discord 是全球最流行的游戏玩家和在线社区语音/文字聊天平台,2024 年拥有约 2 亿月活跃用户。其核心功能之一是低延迟的语音通话。
- 2025 年 3 月 25-26 日,Discord 发生了一次持续约 7 小时的重大语音服务故障,用户无法建立或加入语音通话。
- 该文是 Discord 官方的"事后剖析",详细解释了故障根因:一个用于每月清除过期用户数据的例行脚本(cron job)产生了异常大量的一对一私信通知,导致后端 Redis 缓存和数据库过载,最终使语音信令服务瘫痪。
- 工程师在修复过程中面临一个棘手抉择:是直接停止该脚本(可能导致数据不一致),还是让脚本继续运行并承受服务降级(他们最终选择了后者)。
- 该文还透露了 Discord 正在将语音后端从 Rust 语言逐步迁移到 Go 语言,这是一项正在进行的基础设施升级。