RocketMQ 的 Broker 有三种集群部署方式: 1. 单台 Master 部署; 2. 多台 Master部署; 3. 多 Master 多 Slave 部署;采用第 3 种部署方式时, Master 和 Slave 可以采用同步复制和异步复制两种方式。
刷盘策略
在commitLog.putMessage中决定刷盘方式,在MessageStoreConfig中配置刷盘的方式
RocketMQ的消息都是持久化的:所有消息保存在commitlog文件夹下的文件中
先写入系统PageCache:所有commitlog下的文件都是使用的直接内存,采用mmap文件映射的方法,每次接收到消息的时候先把消息写入直接内存PageCache——即mapedFile
然后刷盘:启动commitLog的时候会启动刷盘的线程(FlushCommitLogService)定时刷盘