中间件微服务Rabbitmq

RabbitMQ集群架构模式

2019-04-09  本文已影响166人  若兮缘

主备模式

主备与主从
主备模式
主备集群架构

如图为主备模式的简单架构模型,主要是利用HaProxy去做的主备切换,当主节点挂掉时,HaProxy会自动进行切换,把备份节点升级为主节点

HaProxy配置

HAProxy 是一款提供高可用性、负载均衡以及基于TCP(第四层)和HTTP(第七层)应用的代理软件, 简单了解一下它的相关配置

#监听集群
listen rabbitmq_cluster
bind 0.0.0.0:5672
#配置TCP模式
mode tcp
#简单的轮询
balance roundrobin
#主节点
server rxy76 192.168.143.76:5672 check inter 5000 rise 2 fall 3
#备用节点,rxy77代表主机名,backup代表备份节点
server rxy77 192.168.143.77:5672 backup check inter 5000 rise 2 fall 3 
备注: rabbitmq集群节点配置 
# inter每隔五秒对mq集群做健康检查,2次正确证明服务器可用,3次失败证明服务器不可用,并且配置主备机制

远程模式(Shovel)

架构模型

Shovel架构模型:绿色部分就代表了两个不同地域的MQ节点,假设用户在A地方下一个订单,然后订单投递到了MQ,第一个地方的MQ节点为了避免压力过大、负载过高可以设置一个阈值,如果负载过高将订单信息转到另一个地方的MQ,分摊服务压力。同时也可以进行两个或多个中心的数据同步。

好处:在使用了shovel插件后,模型变成了近端同步确认,远端异步确认的方式,大大提高了订单确认速度,并且还能保证可靠性

怎么去做的?

Shovel集群的拓扑图如下所示 ,一个订单进来之后,里面有两个队列,如果正常队列压力过大,会将订单路由到backup队列,这个队列和另一个地域的MQ(某个交换机)产生了Shovel联系,就会把数据复制到远端MQ中心,在远端会有相应的队列进行消费

远程模式的使用

事实上这个配置会相对复杂一些,实现双活已经有更好的方式,所以远程模式了解即可。

镜像模式

集群架构

黄色的就是应用服务器,里面包含了RabbitMQ节点,节点里面有个Mirror queue,这三个镜像队列数据是要同步的。
外部发送一条消息,落到一台服务器上,这台服务器将数据进行同步,同步到另外两个节点上。
利用HA-proxy做负载均衡,然后KeepAlived做多个HA-proxy的高可用切换

多活模式(Federation)

多活集群架构

上层就是应用层,然后经过LBS负载均衡,两套RabbitMQ集群,可能是两套镜像队列,两套集群通过federation插件进行数据的复制和流转。
当然federation插件不是建立在集群上的,而是建立到单个节点上,比如左边node3可以和右边任意一台建立这种多活机制,然后,自己这边的集群如果是采用镜像队列那么也会去进行同步,所以这种性能也是非常好的。

Federation插件说明
流转过程
上一篇下一篇

猜你喜欢

热点阅读