RocketMQ-集群模式

单Master

只有一个Broker(其本质上不能称为集群),这种方式也只能在测试环境使用,生产环境最好不要使用!

多Master

Broker集群仅由多个MasterBroker构成,不存在Salve,同一个Topic的各个Queue会平均分布各个Master节点上

优点:
配置简单,单个Master宕机或则重启维护对应用无影响,在磁盘配置为RAID10时,即使机器宕机不可恢复情况下,由于RAID10磁盘非常可靠,消息也不会丢失,(异步刷盘丢失少量消息,同步刷盘一条不丢失),性能最高。

缺点
单机机器宕机期间,这几台机器上违背消费的消息,在机器恢复之前不可订阅(不可消费),消息实时性会受影响。

注意
优点是在Master配置了RAID磁盘阵列的前提下,如果没配置,一旦出现某个Master宕机,则会发生大量消息丢失

多Master多Salve模式-异步复制

基本介绍
Broker集群由多个Master构成,每个Master又配置了多个Salve(在配置RAID磁盘阵列的情况下,一个Master一般配置多个Salve即可),Master与Salve的关系是主备关系,即负责处理消息的读写请求,而Salve负责消息备份与Master宕机后角色切换

异步复制就是复制策略中的异步复制策略,即消息写入到Master成功后Master立刻向Producer返回ACK,无需等待Salve同步数据成功!

特点
该模式的最大特点之一是,当Master宕机后Salve能够自动切换为Master,不过由于Salve从Master同步具有短暂延迟,毫秒级,所以当Master宕机后,这种异步复制方式可能会存在少量消息丢失问题

Salve从Master同步的延迟越短暂,其丢失的消息越少
对于Master的RAID磁盘阵列,若使用的也是异步复制策略,同样也存在延迟问题,同样也可能存在会丢失消息,但RAID阵列的秘诀是微妙级别的(因为由于是磁盘支持的),所以其丢失的数据会更少。

多Master多Salve模式-同步双写

该模式是多MasterduoSlave模式的同步复制实现。所谓同步双写,是指消息写入Master成功后,Master会等待Slave同步数据成功后才向Producer返回成功ACK,即Master与Salve写入成功后才会返回ACK,即是双写。

该模式与异步复制数据模式相比,有点事消息的安全性更高,不存在消息丢失的情况,但单个消息的RT略高,从而导致性能要略低,(大约10%)

该模式下有一个大问题,对于目前版本Master宕机后,Slave不会自动切换为Master

最佳实践

一般会为Master配置RAID10磁盘阵列,然后再为期配置一个Slave,即利用RAID10磁盘阵列的高效、安全性,又解决了可能会影响订阅的问题。

1)RAID磁盘阵列的效率要高于Master-Slave集群,因为RAID是硬件支持的,也正是因为如此,所以RAID阵列的搭建成本较高
2)多Master+RAID阵列,与多Master多Slave集群的区别是什么?
多Master+RAID阵列,其仅仅可以保证数据不丢失,即不影响消息写入,但其可能会影响到消息的订阅,但其执行效率要远高于多Master多Slave集群
多Master多Slave集群,其不仅可以保证消息不丢失,也不会影响消息写入,其运行效率要低于多Master+RAID阵列

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员劝退师-TAO

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值