首页 运维干货RabbitMQ高可用介绍

RabbitMQ高可用介绍

运维派隶属马哥教育旗下专业运维社区,是国内成立最早的IT运维技术社区,欢迎关注公众号:yunweipai
领取学习更多免费Linux云计算、Python、Docker、K8s教程关注公众号:马哥linux运维

1.全局图

HAproxy 来做 RabbitMQ 负载均衡和高可用,用 Keepalived 来保证 HAproxy 的高可用。

RabbitMQ高可用介绍插图

客户端通过VIP建立通信链路;通信链路通过Keeaplived的Master节点路由到对应的HAProxy之上;HAProxy通过负载均衡算法将负载分发到集群中的各个节点之上。正常情况下客户端的连接通过图中左侧部分进行负载分发。当Keepalived的Master节点挂掉或者HAProxy挂掉无法恢复,那么Backup提升为Master,客户端的连接通过图中右侧部分进行负载分发。

如果你追求要更高的可靠性,可以加入多个Backup角色的Keepalived节点来实现一主多从的多机热备。当然这样会提升硬件资源的成本,该如何抉择需要更细致的考恒,一般情况下双机热备的配备已足够满足应用需求。

RabbitMQ高可用介绍插图(1)

2.首先要先安装RabbitMQ

1).首先需要安装erlang

安装过程中会有提示,一路输入“y”即可。

2).完成后安装RabbitMQ:

先下载rpm:

下载完成后安装:

3.配置rabbitmq cluster

先保证各个rabbitmq节点都是可以访问的,将这两个节点连接起来形成高可用的cluster,这样我们就可以让我们的exchange、queue在这两个节点之间复制,形成高可用的queue。

里面有一个隐藏文件.erlang.cookie文件,这个文件是erlang用来发现和互连的基础。

我们需要做的很简单,将两个节点中的.erlang.cookie设置成一样的。

这是erlang的约定,一样的cookie hash key他认为是合法和正确的连接。

.erlang.cookie默认是只读的,你需要修改下写入权限,然后复制粘贴下cookie 字符串即可。

配置好了之后接下来配置hosts文件,erlang会使用hosts文件里的配置去发现节点。

保证同样的配置在所有的节点上都是相同的。

验证你配置的正确不正确你只需要在你的机器上ping,试下请求的ip是不是你配置的即可。按照DNS的请求原理,hosts是最高优先权,除非浏览器有缓存,你直接用ping就不会有问题的。

选择一个节点stop,然后连接到另外节点。

这里以节点 l-rabbitmq2为例,

节点已经连接成功。

默认情况下节点占用的memory是总内存的40%,可以根据自己的用途仔细研究rabbitmq的配置项。为了提高性能,不需要两个节点都是disc的节点,所以我们需要启动一个节点为RAM模式。

改变l-rabbitmq2为内存节点模式。

4.mirror queue policy设置

设置成镜像队列

可以在机器上,用命令行设置,也可以在管理页面进行创建

设置policy,以ha.开头的队列将会被镜像到集群其他所有节点,一个节点挂掉然后重启后会自动同步队列消.

命令行:

5.Keepalived

Keepalived 的作用是检测服务器的健康状态,在所有可能出现单点故障的地方为其提供高可用。如果有一台服务器死机,或工作出现故障,Keepalived 将检测到,并将有故障的服务器从系统中剔除,当服务器工作正常后 Keepalived 自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器。

这里使用的实现方式是单活方式,即主节点的 HAproxy 正常运行,备节点的会被停止。当主节点的出现故障时,备节点的 HAproxy 会自动启动。当主节点的恢复后,备节点的会自动停止。

安装keepalived

主: (10.64.16.123 l-rabbitmq1)

备: (10.64.17.11 l-rabbitmq2)

notify.sh脚本放在 /etc/keepalived/ 目录下,并赋予可执行权限。

启动keepalived service keepalived restartnotify.sh脚本放在/etc/keepalived/目录下,并赋予可执行权限。

6.Haproxy负载代理

利用haproxy做负载均衡

安装haproxy

在代码之后添加

重启动

6.搭建成功

http://10.64.16.254:1080/haproxy?stats看一下监控页面,如果显示出正常就表明已经将 HAProxy 负载均衡配置好了。

测试

生产者

消费者

原文转自:http://dwz.date/bZGE
作者:yuzhen0228

本文链接:http://www.yunweipai.com/37010.html

网友评论comments

发表评论

电子邮件地址不会被公开。

暂无评论

Copyright © 2012-2020 YUNWEIPAI.COM - 运维派
扫二维码
扫二维码
返回顶部