RocketMQ集群搭建理论

RocketMQ集群搭建理论

  • 架构图
  • 数据复制与刷盘策略
    • 复制策略
    • 刷盘策略
  • Broker集群模式
    • 单Master
    • 多Master
    • 多Master多Slave模式-异步复制
    • 多Master多Slave模式-同步双写

架构图

RocketMQ集群搭建理论_第1张图片

数据复制与刷盘策略

RocketMQ集群搭建理论_第2张图片

复制策略

复制策略是Broker的Master与Slave间的数据同步方式。分为同步复制与异步复制:

  • 同步复制:消息写入master后,master会等待slave同步数据成功后才向producer返回成功ACK

  • 异步复制:消息写入master后,master立即向producer返回成功ACK,无需等待slave同步数据成功

异步复制策略会降低系统的写入延迟,RT变小,提高了系统的吞吐量

刷盘策略

刷盘策略指的是broker中消息的落盘方式,即消息发送到broker内存后消息持久化到磁盘的方式。分为同步刷盘与异步刷盘.

  • 同步刷盘:当消息持久化到broker的磁盘后才算是消息写入成功
  • 异步刷盘:当消息写入到broker的内存后即表示消息写入成功,无需等待消息持久化到磁盘。

1 )异步刷盘策略会降低系统的写入延迟,RT变小,提高了系统的吞吐量
2 )消息写入到Broker的内存,一般是写入到了PageCache
3 )对于异步 刷盘策略,消息会写入到PageCache后立即返回成功ACK。但并不会立即做落盘操作,而是当PageCache到达一定量时会自动进行落盘。

Broker集群模式

根据Broker集群中各个节点间关系的不同,Broker集群可以分为以下几类:

单Master

只有一个broker(其本质上就不能称为集群)。这种方式也只能是在测试时使用,生产环境下不能使用,因为存在单点问题。

多Master

broker集群仅由多个master构成,不存在Slave。同一Topic的各个Queue会平均分布在各个master节点上。

  • 优点:配置简单,单个Master宕机或重启维护对应用无影响,在磁盘配置为RAID10时,即使机器宕机不可恢复情况下,由于RAID10磁盘非常可靠,消息也不会丢(异步刷盘丢失少量消息,同步刷盘一条不丢),性能最高;
  • 缺点:单台机器宕机期间,这台机器上未被消费的消息在机器恢复之前不可订阅(不可消费),消息实时性会受到影响。
    以上优点的前提是,这些Master都配置了RAID磁盘阵列。如果没有配置,一旦出现某Master宕机,则会发生大量消息丢失的情况。

多Master多Slave模式-异步复制

RocketMQ集群搭建理论_第3张图片

多Master多Slave模式-同步双写

RocketMQ集群搭建理论_第4张图片

你可能感兴趣的:(RocketMQ,java-rocketmq,rocketmq,云计算)