分布式消息队列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