10、RocketMQ实战:RocketMQ工作原理

分布式消息队列RocketMQ

3.2)消息的存储

RocketMQ中的消息存储在本地文件系统中,这些相关文件默认在当前用户主目录下的store目录中。

[root@VM-20-6-centos ~]# cd store/
[root@VM-20-6-centos store]# ll
total 20
-rw-r--r-- 1 root root    0 May  4 18:45 abort
-rw-r--r-- 1 root root 4096 May  5 12:29 checkpoint
drwxr-xr-x 2 root root 4096 Apr 27 22:10 commitlog
drwxr-xr-x 2 root root 4096 May  5 12:30 config
drwxr-xr-x 2 root root 4096 Apr 27 22:10 consumequeue
-rw-r--r-- 1 root root    4 May  4 18:45 lock

目录说明:

abort:该文件在Broker启动后会自动创建,正常关闭Broker,该文件会自动消失。若在没有启动 Broker的情况下,发现这个文件是存在的,则说明之前Broker的关闭是非正常关闭;

checkpoint:其中存储着commitlog、consumequeue、index文件的后刷盘时间戳 ;

commitlog:其中存放着commitlog文件,而消息是写在commitlog文件中的 ;

config:存放着Broker运行期间的一些配置数据;

consumequeue:其中存放着consumequeue文件,队列就存放在这个目录中;

index:其中存放着消息索引文件indexFile ;

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

3、 2.1)commitlog文件;

说明:在很多资料中commitlog目录中的文件简单就称为commitlog文件。但在源码中,该文件被命名为mappedFile。

3、 2.1.1)目录与文件;

commitlog目录中存放着很多的mappe