简述RocketMQ的 Broker 的存储机制和文件结构 ?

RocketMQ的Broker存储机制和文件结构如下:

  1. Broker主要负责处理普通消息、定时消息、顺序消息、未消费的消息和已消费的消息的存储逻辑。
  2. 消息保存结构如下:在CommitLog目录下有多个CommitLog文件,其实只有一个文件,为了方便保存和读写被切分为多个子文件,所有的子文件通过其保存的第一个和最后一个消息的物理位点进行连接。Broker按照时间和物理的offset顺序写CommitLog文件,每次写的时候需要加锁。每个CommitLog子文件的大小默认是1GB,可以通过mapedFileSizeCommitLog进行配置。当一个CommitLog写满后,创建一个新的CommitLog,继续上一个ComiitLog的Offset写操作,直到写满换成下一个文件。所有CommitLog子文件之间的Offset是连续的,所以最后一个CommitLog总是被写入的。

发表评论

后才能评论