集群架构
RocketMQ 的各个组件都可以搭建成集群部署,Broker 还可以搭建成主从架构,下面介绍的主要是 Broker 集群。
数据复制策略
复制策略是Broker的Master与Slave间的数据同步方式。分为同步复制与异步复制:
同步复制
消息写入master后,master会等待slave同步数据成功后才向producer返回成功ACK,同步复制较安全。
异步复制
消息写入master后,master立即向producer返回成功ACK,无需等待slave同步数据成功,异步复制策略会减小系统的写入延迟,RT变小,提高了系统的吞吐量
数据刷盘策略
刷盘策略指的是broker中消息的落盘方式,即消息发送到broker内存后消息持久化到磁盘的方式。分为同步刷盘与异步刷盘:
同步刷盘
当消息持久化到broker的磁盘后才算是消息写入成功。
异步刷盘
当消息写入到broker的内存后即表示消息写入成功,无需等待消息持久化到磁盘。对于异步 刷盘策略,消息会写入到PageCache后立即返回成功ACK。但并不会立即做落盘操作,而是当PageCache到达一定量时会自动进行落盘。
RAID10
RAID 1+0 也被称为RAID 10标准,实际是将RAID 1和RAID 0标准结合的产物,在连续地以位或字节为单位分割数据并且并行读/写多个磁盘的同时,为每一块磁盘作磁盘镜像进行冗余。它的优点是同时拥有RAID 0的超凡速度和RAID 1的数据高可靠性,但是CPU占用率同样也更高,而且磁盘的利用率比较低。由于利用了RAID 0极高的读写效率和RAID 1较高的数据保护、恢复能力,使RAID 10成为了一种性价比较高的等级,几乎所有的