Skip to content
章节导航

RocketMQ 集群模式架构分析

集群结构类型

单节点

  • 优点:本地开发测试,配置简单,同步刷盘消息一条都不会丢
  • 缺点:不可靠,如果宕机,会导致服务不可用

主从(异步、同步双写)

  • 优点:同步双写消息不丢失,异步复制存在少量丢失,主节点宕机,从节点可以对外提供消息的消费,但是不支持写入
  • 缺点:主备有短暂消息延迟,毫秒级,目前不支持自动切换,需要脚本或者其他程序进行检测然后进行停止 broker,重启让从节点成为主节点

双主

  • 优点:配置简单,可以靠配置 RAID 磁盘阵列保证消息可靠,异步刷盘丢失少量消息
  • 缺点:Master 机器宕机期间,未被消费的消息在机器恢复之前不可消费,实时性会受到影响

双主双从,多主多从模式(异步复制)

  • 优点:磁盘损坏,消息丢失的非常少,消息实时性不会受影响,Master 宕机后,消费者仍然可以从 Slave 消费
  • 缺点:主备有短暂消息延迟,毫秒级,如果Master宕机,磁盘损坏情况,会丢失少量消息

双主双从,多主多从模式(同步双写)

  • 优点:同步双写方式,主备都写成功,向应用才返回成功,服务可用性与数据可用性都非常高
  • 缺点:性能比异步复制模式略低,主宕机后,备机不能自动切换为主机

推荐

  • 主从(异步、同步双写)
  • 双主双从,多主多从模式(异步复制)
  • 双主双从,多主多从模式(同步双写)

刷盘

内存和磁盘的交互

区别

消息可靠性之同步、异步刷盘

  • 内存 + 磁盘
  • 异步刷盘:数据可能丢失,性能高
  • 同步刷盘:数据安全性高

消息可靠性之同步、异步复制

Master-Slave节点里面

  • 异步复制:数据可能丢失,性能高
  • 同步复制:数据安全性高,性能低一点
  • 最终推荐这种方式:同步双写(即M-S同步复制),异步刷盘