RocketMQ5.0源码解析-CommitLog图文详解

1. CommitLog示意图

CommitLog是对RocketMQ的存储的抽象,示意图如下:

RocketMQ5.0源码解析-CommitLog图文详解_第1张图片

CommitLog 主要由几部分组成:

  • MappedFileQueue: 主要用来操作相关数据存储文件。将一系列的MappedFile抽象成一个队列。
  • FlushManager: 数据落地磁盘的管理,主要分为两类:实时数据刷盘(FlushRealTimeService),以及异步刷盘(GroupCommitService)
  • FlushDiskWatcher: 刷盘观察者,处理队列中的刷盘请求,对于规定时间内没有刷盘成功的进行处理。

Tips: 多目录存储参照RIP-7

CommitLog 底层主要是通过FileChannel来实现。其中还有一些RocketMQ的自身优化,例如: TransientStorePool。

2. MappedFil

你可能感兴趣的:(java,大数据,运维)