当前位置: 主页 > 脚本之家 > Erlang >

深入浅析RabbitMQ镜像集群原理

时间:2023-12-28 15:02来源:未知 作者:阿里技术 点击:
集群架构 RabbitMQ 集群是一个或多个节点的逻辑分组,集群中的每个节点都是对等的 每个节点共享所有的用户,虚拟主机,队列,交换器,绑定关系,运行时参数和其他分布式状态等信

集群架构

RabbitMQ 集群是一个或多个节点的逻辑分组,集群中的每个节点都是对等的

每个节点共享所有的用户,虚拟主机,队列,交换器,绑定关系,运行时参数和其他分布式状态等信息。

一个高可用,负载均衡的 RabbitMQ 集群架构应类似下图:

\"在这里插入图片描述\"

这里对上面的集群架构做一下解释说明:

1)首先一个基本的 RabbitMQ 集群不是高可用的

虽然集群共享队列,但在默认情况下,消息只会被路由到某一个节点的符合条件的队列上,并不会同步到其他节点的相同队列上。

假设消息路由到 node1 的 my-queue 队列上,但是 node1 突然宕机了,那么消息就会丢失

想要解决这个问题,需要开启队列镜像,将集群中的队列彼此之间进行镜像,此时消息就会被拷贝到处于同一个镜像分组中的所有队列上。

2)其次 RabbitMQ 集群本身并没有提供负载均衡的功能

也就是说对于一个三节点的集群,每个节点的负载可能都是不相同的,想要解决这个问题可以通过硬件负载均衡或者软件负载均衡的方式

这里我们选择使用 HAProxy 来进行负载均衡,当然也可以使用其他负载均衡中间件,如LVS等。

HAProxy 同时支持四层和七层负载均衡,并基于单一进程的事件驱动模型,因此它可以支持非常高的井发连接数。

(责任编辑:阿里技术)

织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片