消息存储
消息存储是 RocketMQ 中最复杂也最关键的部分。我们将围绕存储整体架构、PageCache 结合 Mmap 的内存映射机制,以及两种主要的刷盘方式展开讨论。
1.1 消息存储整体架构
在消息存储架构中,主要包含以下三类核心文件:
- CommitLog:消息主体以及元数据的存储主体,负责存储 Producer 端写入的消息内容。由于消息长度不定,CommitLog 采用顺序写模式。单个文件大小默认为 1GB,文件名由 20 位数字组成(左侧补零),代表起始偏移量。例如
00000000000000000000表示第一个文件,起始偏移量为 0,文件大小为 1GB。


