RocketMq存储设计——Consume Queue

RocketMq存储设计——Consume Queue

Consume Queue

是什么

consume queue是mq的消费索引文件,只要你知道consume queue offset就能快速定位到commit log offset,就能快速定位到一条消息。注意一个consume queue对象和某个topic下的某个队列的的一个文件等价。
在这里插入图片描述
每个topic下默认会分配四个队列(0,1,2,3),队列下的一个文件就是一个consume queue对象。
例如:我知道topic下的队列1的consume queue offset = 1 ,我可以知道我要去0000000000000000这个文件的20-39字节拿出这条consume queue消息,那么20-27就是commit log offset,知道了物理偏移量,去commit log拿出消息就不是难事了。

格式

固定大小20字节

commit log offset (8字节)
msg size(4字节)
tag code(8字节)

consume queue的生成

它是由DefaultMessageStore的 reput线程生成的。reput线程经由commit log生成consume queue和index file,另外consume queue底层存储也是使用mapped file,mapped file queue

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值