第三篇 消息层:存储与必达

连接层把用户挂上线之后,下一座山是消息本身。这一篇解决 IM 最核心的问题:消息怎么存、怎么保证必达、离线的怎么补、未读数和会话列表怎么跑得快。前面 需求拆解 立的两条硬指标——必达与多端同步,全部在这里兑现。

本篇四篇正文是全书最硬的部分:3.1 消息模型 定下单聊、群聊与序号的表结构;3.2 写入链路 讲先落库再推送的完整工程实现;3.3 离线消息 给出拉取加确认的补偿机制;3.4 未读数与会话列表 用 Redis 把读多写多的接口压到毫秒级。

存储底座是 TDSQL-C MySQL(文档入口 cloud.tencent.com/document/product/1003),缓存层是云数据库 Redis。写入高峰的削峰设计放在第四篇的 RocketMQ 异步写入,本篇先把同步链路讲透。写得扎实一点,第四篇的扩展才会顺。

延伸阅读