镜像模式:集群模式非常经典的就是Mirror镜像模式,保证100%数据不丢失,在实际工作中也是用的最多的,而且实现集群也非常简单,一般互联网大厂都会构建这种镜像集群模式,原理主要是在主备的基础上进行了扩展,集群中所有的节点设备都是同步的,每一个队列,交换机里面的配置信息和我们的数据都是同步的,对于这些镜像在底层同时进行工作,前面的话采用一个负载均衡器,采用nginx或者haproxy也好,进行负载均衡。

HAProxy 代理服务器

HAProxy 是一款提供高可用性、负载均衡以及基于TCP(第四层)

和HTTP(第七层)应用的代理软件,支持虚拟主机,它是免费、

快速并且可靠的一种解决方案。

RabbitMQ集群镜像模式中,HAProxy用于做Tcp,提供节点负载

均衡(LB-LoadBalance)与故障发现。

rabbitmq 镜像队列如何选主 rabbitmq镜像集群原理_rabbitmq


集群环境搭建

HAProxy 负载均衡配置

参考:https://www.yisu.com/zixun/115327.html

RabbitMQ镜像集群配置
尽管我们部署好了普通模式的集群,但因为节点间只同步队列结构并不进行消息的同步,对于一些可靠性要求较高的场景需要对队列中的消息也同步到所以节点。
使用Rabbit镜像功能,需要基于rabbitmq策略来实现,政策是用来控制和修改群集范围的某个vhost队列行为和Exchange行为,在cluster中任意节点启用策略,策略会自动同步到集群节点。

策略的修改可以通过命令也可以通过WEB,如果我是通过WEB来修改的,非常简单。
Pattern:“^” 表示所有匹配所有队列名称。”^log” 是指同步”log”开头的队列名称。
ha-mode:“all”代表同步到所以节点。

rabbitmq 镜像队列如何选主 rabbitmq镜像集群原理_rabbitmq 镜像队列如何选主_02


rabbitmq 镜像队列如何选主 rabbitmq镜像集群原理_数据_03


rabbitmq 镜像队列如何选主 rabbitmq镜像集群原理_rabbitmq_04


rabbitmq 镜像队列如何选主 rabbitmq镜像集群原理_负载均衡_05