RocketMQ 双 Master 模式搭建(Linux环境)

RocketMQ 集群部署模式

1、 单 master 模式

也就是只有一个 master 节点,称不上是集群,一旦这个 master 节点宕机,那么整个服务就不可用,适合个人学习使用。

2、 多 master 模式

多个 master 节点组成集群,单个 master 节点宕机或者重启对应用没有影响。
优点:所有模式中性能最高
缺点:单个 master 节点宕机期间,未被消费的消息在节点恢复之前不可用,消息的实时性就受到影响。

注意:使用同步刷盘可以保证消息不丢失,同时 Topic 相对应的 queue 应该分布在集群中各个节点,而不是只在某各节点上,否则,该节点宕机会对订阅该 topic 的应用造成影响。

3、 多 master 多 slave 异步复制模式

在多 master 模式的基础上,每个 master 节点都有至少一个对应的 slave。master
节点可读可写,但是 slave 只能读不能写,类似于 mysql 的主备模式。

优点: 在 master 宕机时,消费者可以从 slave 读取消息,消息的实时性不会受影响,性能几乎和多 master 一样。
缺点:使用异步复制的同步方式有可能会有消息丢失的问题。

4、 多 master 多 slave 同步双写模式

同多 master 多 slave 异步复制模式类似,区别在于 master 和 slave 之间的数据同步方式。
优点:同步双写的同步模式能保证数据不丢失。
缺点:发送单个消息 RT 会略长,性能相比异步复制低10%左右。
刷盘策略:同步刷盘和异步刷盘(指的是节点自身数据是同步还是异步存储)
同步方式:同步双写和异步复制(指的一组 master 和 slave 之间数据的同步)

注意:要保证数据可靠,需采用同步刷盘和同步双写的方式,但性能会较其他方式低。

5、 总结

单Master无Slave(脆弱)
单Master多Slave(单点故障就瘫,开源版无主备切换功能)
多Master无Slave(无单点故障,线上生产常用模式)
多Master多Slave(无单点故障)

6、参考文章:

RocketMQ 双 Master 模式搭建(Linux环境):https://www.cnblogs.com/wrong5566/p/6078592.html

RocketMq 集群搭建 部署 (2m-2s-async)(二): https://blog.csdn.net/weixin_40533111/article/details/84451219

https://blog.csdn.net/weixin_40533111/article/details/85069536

RocketMQ 实战之快速入门: https://www.jianshu.com/p/824066d70da8

猜你喜欢

转载自blog.csdn.net/xiaojin21cen/article/details/89082354