RocketMQ 消息存储的设计与实现

作为一款高性能的消息中间件,RocketMQ 基于互联网的生产要求对多 Topic 场景做了诸多针对性优化。根据中间件团队提供的压测报告,在 Producer 和 Consumer 共存的情况下,相比于 Kafka,RocketMQ 的性能指标(TPS 和 RT)随着 Topic 数量的上升表现稳定。本文从消息存储的角度谈谈 RocketMQ 高性能的原因,重点包括四个方面:消息文件存储的结构设计、消息从 Broker 接收到持久化磁盘的流程、刷盘策略和内存映射优化机制。

消息文件存储结构设计

消息持久化

刷盘策略

内存映射