分布式消息队列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个字节,其中存放着如下数据:
<