13、RabbitMQ学习笔记—集群架构-1

RabbitMQ集群架构模式

主备模式:

所谓的rabbitmq另外一种模式就是warren(兔子窝),就是一个主备方案(主节点如果挂了,从节点提供服务而已,和activemq利用zookeeper做主备一样),利用Haproxy做主从切换
13、RabbitMQ学习笔记—集群架构-1
Haproxy配置:
listen rabbitmq_cluster
bind 0.0.0.0:5672 //配置 tcp模式
mode tcp // 简单的轮训
balance roundrobin //主节点
server bhz76 192.168.11.76:5672 check inter 5000 rise 2 fall 2
server bhz77 192.168.11.77:5672 backup check inter 5000 rise 2 fall 2 // 备用接点

rabbitmq 集群配置节点配置 inter每隔5秒对mq集群做健康检查,2次正确证明服务器可用,2次失败证明服务器不可用,并且做主备机制

远程模式:

远程模式可以实现双活的一种模式,简称Shovel模式,所谓Shovel就是我们可以吧消息进行不同数据中心的复制工作,可以跨地域的让两个mq集群互联
架构案例模型
13、RabbitMQ学习笔记—集群架构-1
13、RabbitMQ学习笔记—集群架构-1
使用:
启动rabbitmq插件:
rabbitmq-pulgins 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个节点)集群架构如下

13、RabbitMQ学习笔记—集群架构-1

多活模式

多活模式是实现异地数据复制的主流模式,因为Shovel模式配置比较复杂,所以一般来说实现异地集群都是使用这种双活或者多活模式来实现的,这种模型需要依赖rabbitmq的federation插件,可以实现持续的可靠的AMQP数据通信,多活模式在实际配置与应用中非常简单

RabbitMQ部署架构采用双中心模式(多中心),那么在两套(或多套)数据中心各部署一套RabbitMQ集群,各中心的RabbitMQ服务除了需要为业务提供政策的消息服务外,中心之间还需要实现部分队列消息共享。集群架构如下
13、RabbitMQ学习笔记—集群架构-1
两个集群之间通过federation插件进行数据同步。federation插件是一个不需要构建cluster,而在Brokers之间传输消息的高性能插件,federation插件可以在Brokers或者Cluster之间传输消息,连接的双方可以使用不同的users和virtual host,双方也可以使用不同版本的rabbitmq和erlang,federation插件使用AMQP协议通讯,可以接受不连续的传输
13、RabbitMQ学习笔记—集群架构-1