11、RocketMQ实战:RocketMQ工作原理

分布式消息队列RocketMQ

3.3)indexFile

除了通过通常的指定Topic进行消息消费外,RocketMQ还提供了根据key进行消息查询的功能。该查询是通过store目录中的index子目录中的indexFile进行索引实现的快速查询。当然,这个indexFile中的索引数据是在包含了key的消息被发送到Broker时写入的。如果消息中没有包含key,则不会写入。

3、 3.1)索引条目结构;

每个Broker中会包含一组indexFile,每个indexFile都是以一个时间戳命名的(这个indexFile被创建时的时间戳);

每个indexFile文件由三部分构成:indexHeader,slots槽位,indexes索引数据;

每个indexFile文件中包含500w个slot槽,而每个slot槽又可能会挂载很多的index索引单元。

*

indexHeader固定40个字节,其中存放着如下数据:

*

<