RocketMQ-store目录结构分析

部署rocketmq时,需要指定store存储根路径,所有的数据都存储在这个根路径下,这里介绍下这些目录和文件的作用,如下:

[root@qa-rocketmq-broker1-m store]# pwd
/rocketmq/rocketmq-data/store
[root@qa-rocketmq-broker1-m store]# ll
总用量 12
-rw-r--r--  1 root root    0 10月 19 14:56 abort
-rw-r--r--  1 root root 4096 11月 11 10:14 checkpoint
drwxr-xr-x  2 root root   34 9月  26 19:17 commitlogs
drwxr-xr-x  2 root root  280 11月 11 10:15 config
drwxr-xr-x 33 root root 4096 11月  8 18:35 consumequeue
drwxr-xr-x  2 root root   31 9月  29 17:28 index
-rw-r--r--  1 root root    4 10月 19 14:56 lock

abort文件

用于判断broker是否正常关闭,在broker启动时创建,关闭时删除,如果broker异常退出,则文件会一直存在,在启动时会走其他流程进行文件修复等。

checkpoint文件

文件检测点,存储commitlog文件、consumequeue、index索引文件最后一次刷盘时间戳。

commitlog目录

存放消息实体,所有topic的消息都会通过追加的方式往commitlog文件中写入,单文件大小默认为1G,文件名为起始偏移量,长度为20位,左边补零。

consumequeue目录

存放消息消费队列,只有写入到这里的数据,才能够被消费者消费,每个topic都会在此目录下创建一个同名目录,每个队列会建立对应的索引文件,用于加快消息的检索和节省磁盘空间,里面存放了消息的关键信息,如commitog文件中的偏移量、消息长度、tag的hashcode值等。

index文件目录

存放消息索引文件,只有写入到这里的数据,才能够通过key或者msgId等进行查询。

config目录

存放topic和订阅组的配置信息,以及消费进度等。

lock文件

锁文件,在consumer进行rebalance的时候。

 

 

 

posted on 2021-11-11 14:33  流年似水zlw  阅读(1011)  评论(0编辑  收藏  举报

导航