上QQ阅读APP看书,第一时间看更新
第4章
RocketMQ消息存储
从存储模型来看,目前MQ中间件分为需要持久化和不需要持久化两种,大多数MQ都支持持久化存储,比如ActiveMQ、RabbitMQ、Kafka、RocketMQ,ZeroMQ则不需要支持持久化存储。然而业务系统大多需要MQ具有持久存储的能力,以增加系统的高可用性。从存储方式和效率来看,文件系统高于KV存储,KV存储又高于关系型数据库,直接操作文件系统肯定是最快的,但可靠性是最低的,而关系型数据库的性能和可靠性与文件系统恰恰相反。本章主要分析RocketMQ的消息存储机制。
本章重点内容如下。
- RocketMQ存储概要设计。
- 消息发送存储流程。
- 存储文件组织与内存映射机制。
- RocketMQ存储文件。
- 消息消费队列、索引文件构建机制。
- RocketMQ文件恢复机制。
- RocketMQ刷盘机制。
- RocketMQ文件删除机制。
- 同步双写机制。