rocketMQ中store目录解释

 rocketMQ中有个store目录,它是用来存放和管理broker中的消息,queue和topic的。

下面的是store的目录

  abort:该文件在broker启动后会自动创建,broker关闭后消失,若没有消失则说明该broker非正常关闭。

 checkpoint:存储这commitlog、consumequue、index文件最后的刷盘时间。

 commitlog:存储着消息。很多资料中commitlog目录中的文件为成为commitlog文件。但在源码中被称为mappedFile。broker中的所有消息实际上都是落盘到mappedFile文件中的(注意:队列queue并不存储在该文件夹中)。mappedFile文件中能容纳的消息大小的最大值为1G。文件名由20位十进制数构成,表示当前文件的第一条消息起始偏移量。                                                              一个broker中的所有mappedFile文件的commitlog offset偏移量是连续的。一个broker只会有一个commitlog目录,无论有多少个topic的消息都会被写入mappedFIle文件,就是说消息没有按照topic分类存放。

 config:存放着broker运行期间的一些配置。

 consumequeue:存放着队列。每个topic都会在该目录中创建一个目录,目录名为该topic的名字。在该topic目录下,又会为该topic下的每一个queue创建一个目录,目录名为queueId。每个queueId目录中有个consumequeue文件,该文件是commitlog的索引文件,可以定位到commitlog中的具体消息。

 index:存放着消息索引文件indexFile。除了通过通常的指定topic进行顺序消费外,还可以根据key进行消息查询的功能(通过indexFile进行索引实现了快速查询)。indexFile中的索引数据是在包含了key的消息被发送到broker时写入的。每个broker都会包含一组indexFIle,每个indexFIle都是以一个时间戳命名的(这个indexFile文件被创建的时间)。每个indexFIle文件由3部分组成:indexHeader,slot槽位,index索引数据。每个indexFile文件中包含500w个slot槽,而每个slot槽肯会挂载很多index索引单元。                                                                                                               当第一条含key的消息发送到broker后,若indexFile文件,就是立即创建一个indexFile文件。当一个indexFile文件中挂载的seindex索引单元数量超出了2000w个时,就会创建系的indexFile。当带key的消息发送来后,系统会找到最新的indexFile。

 lock:运行期间使用到的全局资源锁。

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值