RabbitMQ集群架构模式
1.主备模式
实现RabbitMQ的高可用集群,一般在并发和数据量不高的情况下,这种模型非常的好用且简单。主备模式也称之为Warren模式。就是一个主/备方案(如果主节点挂了,就让从节点提供服务,和activemq利用zookeeper做主/备一样)
HaProxy简单配置:
listen rabbitmq_cluster
bind 0.0.0.0:5672 #配置tcp模式
mode tcp #简单的轮询
balance roundrobin#主节点
server rabbitmq1 192.168.0.114:5672 check inter 5000 rise 2 fall 2
server rabbitmq1 192.168.0.201:5672 backup check inter 5000 rise 2 fall 2 #备用节点
备注:rabbitmq结群节点配置 #inter 每隔5秒对mq集群做健康检查,2次正确证明服务器可用,若服务不可用,并且配置主备机制。
2.远程模式
远距离通信和复制,所谓Shovel就是我们可以把消息进行不同数据中心的复制工作,我们可以跨地域的让两个mq集群互联。
在使用了shovel插件后,模型变成了近端同步确认,远端异步确认的方式,大大提高了订单确认速度,并且还能保证 可靠性。
Shovel集群的配置,首先启动rabbitmq插件,命令如下:
rabbitmq-plugins enable amqp_client
rabbitmq-plugins enable rabbitmq_shovel
创建rabbitmq.config文件:touch /etc/rabbitmq/rabbitmq.config
添加配置见 rabbitmq.config
最后我们需要原服务器和目的地服务器都是用相同的配置文件(rabbitmq.config)
镜像模式(非常重要的)
集群模式是非常经典的就是Mirror镜像模式,保证100%数据不丢失,在实际工作中也是用的最多的。并且实现集群非常的简单,一般互联网大厂都会构建这种镜像集群模式。
Mirror镜像队列,目的是为了保证rabbitmq数据的高可靠解决方案,主要就是事项数据的同步,一般来讲是2-3各节点实现数据同步(同于100%数据可靠性解决方案一般是3节点)集群架构如下: