文章目录

  • 一、RabbitMQ四种集群模式
  • 1. 主备模式
  • 2. 远程模式
  • 3. 镜像模式
  • 4. 多活模式(异地数据复制的主流模式)


一、RabbitMQ四种集群模式
1. 主备模式

主备模式:主节点提供读写,从节点不提供读写服务,只是负责提供备份服务,备份节点的主要功能是在主节点宕机时,完成自动切换 从–>主
主从模式:主节点提供读写,从节点只读

主从架构和主备架构的区别 主备模式和主从模式_数据中心


主从架构和主备架构的区别 主备模式和主从模式_数据中心_02


主节点挂了后,由HaProxy进行选择备份节点来做主节点。

主从架构和主备架构的区别 主备模式和主从模式_数据中心_03

配置

主从架构和主备架构的区别 主备模式和主从模式_数据复制_04


主从架构和主备架构的区别 主备模式和主从模式_数据复制_05


listen rabbitmq_cluster 监听rabbitmq集群

bind ip:5672 绑定ip和默认端口5672

balance roudrobin 随机的选择备份节点来做主节点

2. 远程模式

远程模式可以实现双活的一种模式,简称 shovel [ˈʃʌvəl] 模式,所谓的 shovel 就是把消息进行不同数据中心的复制工作,可以跨地域的让两个 MQ 集群互联,远距离通信和复制。

主从架构和主备架构的区别 主备模式和主从模式_服务器_06


如图所示,有两个异地的 MQ 集群(可以是更多的集群),当用户在地区 1 这里下单了,系统发消息到 1 区的 MQ 服务器,发现 MQ 服务已超过设定的阈值,负载过高,这条消息就会被转到 地区 2 的 MQ 服务器上,由 2 区的去执行后面的业务逻辑,相当于分摊我们的服务压力。

在使用了 shovel 插件后,模型变成了近端同步确认,远端异步确认的方式,大大提高了订单确认速度,并且还能保证可靠性。

主从架构和主备架构的区别 主备模式和主从模式_数据中心_07

如上图所示,当我们的消息到达 exchange,它会判断当前的负载情况以及设定的阈值,如果负载不高就把消息放到我们正常的 warehouse_goleta 队列中,如果负载过高了,就会放到 backup_orders 队列中。backup_orders 队列通过 shovel 插件与另外的 MQ 集群进行同步数据,把消息发到第二个 MQ 集群上。

这是 rabbitMQ 比较早期的架构模型了,现在很少使用了。

3. 镜像模式

主从架构和主备架构的区别 主备模式和主从模式_服务器_08


配置奇数个节点是为了防止集群脑裂

主从架构和主备架构的区别 主备模式和主从模式_服务器_09


主从架构和主备架构的区别 主备模式和主从模式_数据中心_10

4. 多活模式(异地数据复制的主流模式)

主从架构和主备架构的区别 主备模式和主从模式_数据复制_11


主从架构和主备架构的区别 主备模式和主从模式_数据中心_12


主从架构和主备架构的区别 主备模式和主从模式_服务器_13


主从架构和主备架构的区别 主备模式和主从模式_服务器_14


主从架构和主备架构的区别 主备模式和主从模式_服务器_15


主从架构和主备架构的区别 主备模式和主从模式_数据复制_16