RocketMQ(11) -- RocketMQ工作原理-- indexFile

本文介绍了RocketMQ中indexFile的工作原理,包括索引条目结构、创建过程和查询流程。indexFile用于实现根据key的消息快速查询,每个文件包含header、slots和indexes,每个Broker有一组按时间戳命名的indexFile。查询时,通过key的hash值定位slot,再通过indexNo找到索引单元,从而获取消息的commitlog偏移量和时间戳。
摘要由CSDN通过智能技术生成

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值