文章目录
1. RocketMQ的文件体系介绍
RocketMQ的消息存储是RocketMQ中最为复杂和最为重要的一部分。RocketMQ底层有5类文件,对于不同类型的文件在存储逻辑层采用不同的类提供服务,其中三类大文件和两类小文件:
- Index文件由
IndexService
类提供服务(大文件) - consumequeue文件由
Consumequeue
类提供服务(大文件) - commitlog文件由
CommitLog
类提供服务(大文件) - checkpoint文件由
StoreCheckPoint
类提供访问服务(小文件) - config目录下面的配置文件(以json格式存储)由
ConfigMananger
类提供访问服务(小文件)
2. CommitLog,ConsumeQueue, IndexFile 介绍
2.1 CommitLog
消息主体以及元数据的存储主体,存储Producer端写入的消息主体内容,消息内容不是定长的。单个文件大小默认1G ,文件名长度为20位,左边补零,剩余为起始偏移量,比如00000000000000000000代表了第一个文件,起始偏移量为0,文件大小为1G=1073741824;当第一个文件写满了,第二个文