第四篇 可靠与扩展

第三篇把单机房内的消息链路讲完了:能存、能推、能拉、能算未读。但稳定运行三个月后,新的问题浮上来——晚高峰的发送接口会抖、群的规模从几十人涨到上万人、偶尔还有用户反馈消息莫名其妙少了几条。这些不是 bug,是规模带来的新命题:链路要抗住峰值,存储要能扩,扩散模式要重选,全链路要补幂等。第四篇就来拆这四件事。

本篇是全书从能用到撑得住的分水岭:4.1 削峰填谷 用 RocketMQ 把写入高峰从同步链路里剥出来;4.2 存储扩容 讲我们为什么先走读写分离而不是一上来就分库分表;4.3 群消息扩散 是读扩散与写扩散的实战权衡;4.4 消息防丢 补上全链路的幂等最后一道闸。

峰值削峰用的消息队列 RocketMQ(文档入口 cloud.tencent.com/document/product/1493),存储扩容跑在 TDSQL-C(文档入口 cloud.tencent.com/document/product/1003)上。这一篇的每节都对应一次线上事故的复盘,读的时候建议对照自己系统的链路看。

延伸阅读