本章小结
RocketMQ 主要存储文件包含CommitLog文件、ConsumeQueue文件、IndexFile文件、Checkpoint文件、abort文件。RocketMQ组织文件以文件的起始偏移量来命名文件,这样根据偏移量能快速定位到真实的物理文件。RocketMQ基于内存映射文件机制提供了同步刷盘与异步刷盘两种机制,异步刷盘是指在消息存储时先追加到内存映射文件,然后启动专门的刷盘线程定时将内存中的数据写入磁盘。
RocketMQ为了保证消息发送的高吞吐量,采用单一文件存储所有主题的消息,保证消息存储是完全的顺序写,但这样给文件读取同样带来了不便,为此RocketMQ构建了ConsumeQueue文件,基于主题与队列进行组织,同时RocketMQ为消息实现了哈希索引,可以为消息设置索引键,根据索引能够快速从CommitLog文件中检索消息。
第5章我们将重点分析有关消息消费的实现机制。