RabbitMQ + 镜像队列 + HAProxy 实现负载均衡的集群

本文介绍了使用RabbitMQ + 镜像队列 + HAProxy实现负载均衡集群的方法。包括RabbitMQ集群管理与扩容、镜像集群配置以解决单点故障,HAProxy的安装与配置用于负载均衡,还提及了RabbitMQ自带监控工具及Prometheus + Grafana等监控方案。

RabbitMQ + 镜像队列 + HAProxy 实现负载均衡的集群



一、集群管理(RabbitMQ扩容)

1. 环境介绍

hostname ip
mq1 192.168.80.16
mq2 192.168.80.17
mq3 192.168.80.18
mqhaproxy 192.168.80.19
单机部署

单机版安装地址:RabbitMQ3.8.4安装和配置
在这里插入图片描述
注意:修改三台节点的hostname文件,设置主机名称,分别mq1/mq2/mq3
在这里插入图片描述

修改三台节点的/etc/hosts文件,设置节点名称和ip地址的映射关系
在这里插入图片描述


2. 从mq1拷贝.erlang.cookie到mq2、mq3的相应目录(元数据共享)

如果没有该文件,手动创建 /var/lib/rabbitmq/.erlang.cookie ,生成Cookie字符串,或者启动一次RabbitMQ自动生成该文件。生产中推荐使用第三方工具生成。

2.1 我们首先在mq1上启动单机版RabbitMQ,以生成Cookie文件:
	systemctl start rabbitmq-server 

在这里插入图片描述

2.2 开始准备同步 .erlang.cookie 文件
	RabbitMQ的集群依赖Erlang的分布式特性,需要保持Erlang Cookie一致才能实现集群节点的认证和通信,我们直接使用scp命令从node1远程传输。
	scp /var/lib/rabbitmq/.erlang.cookie root@node3:/var/lib/rabbitmq/
	scp /var/lib/rabbitmq/.erlang.cookie root@node4:/var/lib/rabbitmq/

在这里插入图片描述
同步完 .erlang.cookie 文件 后,在当前节点就可以访问其他节点

2.3 修改mq2和mq3上该文件的所有者为:rabbitmq:rabbitmq
	chown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie 

在这里插入图片描述
注意: .erlang.cookie文件权限为400


3. 使用下述命令启动mq2和mq3上的RabbitMQ:

	systemctl start rabbitmq-server 

在这里插入图片描述

4. 将mq2和mq3这两个节点加入到集群中(默认情况下:一个节点就是一个集群)

4.1 以mq1节点为集群,查看集群状态:此时运行节点只有mq1节点
	rabbitmqctl cluster_status

在这里插入图片描述

4.2 停止Erlang VM上运行的RabbitMQ应用,保持Erlang VM的运行
	rabbitmqctl stop_app

在这里插入图片描述

4.3 移除当前RabbitMQ虚拟主机中的所有数据:重置
	rabbitmqctl reset

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

穿城大饼

你的鼓励将是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值