亿级消息解剖:吞吐、堆积与存储三笔账
2026/8/24大约 3 分钟
亿级规模系统系列 · 阶段 0 · 度量与估算 · 第 3/49 篇 · 🚧 占位待学
上一篇:《从日活到机器数:容量估算的草稿纸算法》
下一篇:《扩容两条路:先把单机榨干,再谈横向》
学习大纲:《QPS 过万与亿级消息系统设计学习总纲》
状态:待学习。 本文为占位文档:知识点清单、实验与验收标准已就绪,正文待按「先学习、先实验、再撰写」补全。
对应总纲单元:阶段 0 · 单元 0.3
一、本文要解决的问题
「消息规模过亿」到底指什么?一天一亿条还是峰值一亿条在飞?堆积十亿条占多少磁盘、要追多久?消息主线与 QPS 主线的度量方式完全不同——吞吐算快慢,堆积算深浅,存储算大小,三笔账要分开算清。
二、知识点清单
- 日消息量 vs 峰值 TPS:为什么 MQ 容量按峰值 TPS 选型、按日总量买盘
- 消息放大:1KB 消息体在网络上、在磁盘上(索引、刷盘、副本)各放大多少倍
- 堆积的本质:堆积量 = 生产速率对时间的积分 − 消费速率对时间的积分
- 磁盘容量公式:日增量 × 保留天数 × 副本数 + 索引开销,留 30% 余量
- 保留策略(按时间 / 按大小)与堆积上限的关系
三、动手实验(学习时必须真跑)
- WSL Docker 起单机 RocketMQ 5.3.x,用自带 producer 压 10 万条 1KB 消息
- 实测记录:生产 TPS、消费 TPS、实际落盘大小(对比理论 10 万 KB)、磁盘占用放大比
- 停掉消费者再压 5 万条,观察堆积量指标;恢复消费记录追赶耗时
四、验收标准(全部通过才进入下一篇)
五、阶段验收(本篇是阶段 0收尾篇)
六、写作提示(补正文时遵守)
- 开篇问题驱动;结构走「是什么 → 为什么 → 怎么做 → 背景知识」
- 所有代码、命令、输出必须先在本机跑通再写入,不得杜撰
- 版本口径以总纲环境清单为准(Spring Boot 3.x / MySQL 8.0 / Redis 8.x / RocketMQ 5.3.x / Kafka 4.3 / ShardingSphere 5.5.3)
- 涉及版本敏感结论时标注出处与时间
本篇完成后,把文首导航块的「🚧 占位待学」去掉,并在总纲处打卡。