RabbitMQ集群详解(4种常用集群模式)

RabbitMQ集群详解(4种常用集群模式)-mikechen

RabbitMQ集群简介

RabbitMQ本身是基于Erlang编写,Erlang语言天生具备分布式特性,因此RabbitMQ天然支持集群。

RabbitMQ 集群中节点包括内存节点(RAM)、 磁盘节点(Disk, 消息持久化), 集群中至少有一个 Disk 节点。

RabbitMQ集群详解(4种常用集群模式)-mikechen

 

RabbitMQ集群作用

RabbitMQ集群主要有两个作用:

1.集群是保证可靠性的一种方式,采用多节点,是数据高可靠性的有效解决方案。

2.同时可以增加节点,通过水平扩展以达到增加消息吞吐量能力的目的。

RabbitMQ集群模式

RabbitMQ集群模式主要包含如下4种:

1.主备模式

主备模式:也就是主节点提供读写,备用节点不提供任何读写的,只用来实现当主节点宕机的情况下能顶上去。

如下图所示:

RabbitMQ集群详解(4种常用集群模式)-mikechen

可通过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 bhz76 192.168.11.77:5672 backup check inter 5000 rise 2 fall 2 # 备用节点

2.远程模式

远程模式:就是我们可以把消息进行不同数据中心的复制工作,可以跨地域的让两个mq集群互联远距离通信和复制。

如下图所示:

RabbitMQ集群详解(4种常用集群模式)-mikechen

远程模式,在实际应用种不太常用。

 

3.镜像模式

镜像模式(Mirror),就是集群里面的每个节点都会存储Queue的数据副本,在实际工作中也是用的最多。

如下图所示,一般是3个节点:

RabbitMQ集群详解(4种常用集群模式)-mikechen

集群镜像模式,意味着每次生产消息的时候,都需要把消息内容同步给集群中的其他节点,这种方式能够保证Queue的高可用性。

一般互联网大厂都会构建这种镜像集群模式,在实际工作中也是用的最多的。

 

4.多活模式

这种模式也是实现异地数据复制的主流模式,模型如下图所示:

RabbitMQ集群详解(4种常用集群模式)-mikechen


RabbitMQ部署架构采用:双中心模式(多中心),在两套或多套数据中心各部署一套RabbitMQ集群,可以避免一个集群挂掉,整个系统就挂掉了。

各个中心的RabbitMQ服务除了需要为业务提供正常的消息服务外,中心之间还需要实现部分队列消息共享。

陈睿mikechen

10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

关注「mikechen」公众号,获取更多技术干货!

后台回复面试即可获取《史上最全阿里Java面试题总结》,后台回复架构,即可获取《阿里架构师进阶专题全部合集

评论交流
    说说你的看法