计算机系统应用教程网站

网站首页 > 技术文章 正文

docker分布式部署rabbitmq高可用集群

btikc 2024-09-24 08:33:49 技术文章 28 ℃ 0 评论

在我们日常的应用部署中,中间件也是必不可少的一部分。常规的单节点服务在日常工作中占了大多数,但是在业务量逐渐增加,越来越多的业务需要可持续性的工作状态。高可用方案成为日常应用中不可缺少的一部分。为了演示方便,我们今天来用docker部署一套高可用的rabbitmq集群。话不多说,接下来就是演示部分:

0.准备工作,需要三台虚拟机,内存适量即可。计划将192.168.247.128作为主节点,192.168.247.129/130作为从节点使用。

1.关闭各服务器防火墙及selinux

systemctl stop firewalld

setenforce 0

vim /etc/selinux/config

...

SELINUX=disabled

...

2.准备好rabbitmq安装目录及hosts文件

[提前配置主机名

hostnamectl set-hostname rabbitmq1

hostnamectl set-hostname rabbitmq2

hostnamectl set-hostname rabbitmq3

]

mkdir -p /opt/rabbitmq

vim /opt/rabbitmq/hosts

192.168.247.128 rabbitmq1

192.168.247.129 rabbitmq2

192.168.247.130 rabbitmq3

3.在各服务器进行容器启动命令

192.168.247.128

docker run -d --privileged=true --name rabbitmq1 --hostname rabbitmq1 -v /opt/rabbitmq/data:/var/lib/rabbitmq -v /opt/rabbitmq/hosts:/etc/hosts -v /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_ERLANG_COOKIE='your erlang cookie' -e RABBITMQ_DEFAULT_PASS=123456 --net host rabbitmq:latest

192.168.247.129

docker run -d --privileged=true --name rabbitmq2 --hostname rabbitmq2 -v /opt/rabbitmq/data:/var/lib/rabbitmq -v /opt/rabbitmq/hosts:/etc/hosts -v /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_ERLANG_COOKIE='your erlang cookie' -e RABBITMQ_DEFAULT_PASS=123456 --net host rabbitmq:latest

192.168.247.130

docker run -d --privileged=true --name rabbitmq3 --hostname rabbitmq3 -v /opt/rabbitmq/data:/var/lib/rabbitmq -v /opt/rabbitmq/hosts:/etc/hosts -v /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_ERLANG_COOKIE='your erlang cookie' -e RABBITMQ_DEFAULT_PASS=123456 --net host rabbitmq:latest

4.容器启动完成后查看各容器日志确认无报错信息

5.将node2和node3节点加入到主节点

首先进入rabbitmq2容器内操作

docker exec -it rabbitmq2 bash

rabbitmqctl stop_app

rabbitmqctl join_cluster rabbit@rabbitmq1

rabbitmqctl start_app

加入完成后查看集群状态

rabbitmqctl cluster_status

然后进入rabbitmq3容器内操作

docker exec -it rabbitmq3 bash

rabbitmqctl stop_app

rabbitmqctl join_cluster rabbit@rabbitmq1

rabbitmqctl start_app

加入完成后查看集群状态

rabbitmqctl cluster_status

6.此时我们已经可以通过浏览器访问到我们的rabbitmq集群,但是还不是高可用状态,需要执行以下操作。

在任意节点执行以下命令

rabbitmqctl set_policy -p / ha-all "^" '{"ha-mode":"all"}' --apply-to all

7.通过浏览器访问我们的rabbitmq集群,如果远程访问端口15672没有打开,可以通过以下操作开放端口

8.故障测试,停用主节点192.168.247.128,查看状态。

9.恢复rabbitmq1再查看状态。

演示操作完成。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表