RabbitMQ集群架构介绍
2019-02-27 本文已影响127人
Real_man
常用的RabbitMQ集群模式
- 主备模式:一般在并发量和数据量都不高的情况下,这种模型简单好用,主备模式也被称为Warren模式,备用节点不提供读写服务。主节点挂掉了,备用节点提供服务。

- 远程模式:可以实现双活模式,简称Shovel模式,我们可以把消息进行不同数据中心的复制工作,我们可以跨地域的让两个MQ集群互联。分摊服务器压力

rabbitmq-plugins enable amqp_client
rabbitmq-plugins enable rabbitmq_shovel
- 镜像模式:非常经典的模式,保证数据100%的不丢失,在实际中用的也是最多的,目的也是为了保证数据的高可用性解决方案,一般来讲是2-3个节点可以实现数据同步。一般是3节点

-
多活模式:实现异地数据复制的模式,因为Shovel模式配置比较复杂,异地集群一般都是使用这种双活或者多活的,这种模型需要依赖rabbitmq的federation插件,可以实现持续可靠的amqp数据通信,多活模式在实际中的配置与应用非常简单。
在两套数据中心各部署一套RabbitMq集群,除了正常的提供服务之外,实现部分消息队列共享。架构如下

Federation插件是不需要构建Cluster,而在broker之间传输消息的插件,可以在broker或者cluster之间传输消息,连接的双方可以使用不同的users或者virtual hosts,双方也可以使用不同版本的RabbitMQ或者Erlang,Federation插件使用AMQP协议,可以接受不连续的传输。
