RabbitMQ--生产环境docker搭建--02--集群部署

RabbitMQ–生产环境docker搭建–02–集群部署


前提

使用hd用户登陆
完成基础环境搭建
	https://blog.csdn.net/zhou920786312/article/details/118212302

1、机器

服务器地址端口节点名称备注
192.168.187.17115672mq1基准节点
192.168.187.17215672mq2加入基准节点
192.168.187.17315672mq3加入基准节点

2、公共操作

所有节点都要做

2.1、下载docker

docker pull rabbitmq:3.8-management-alpine

2.2、创建配置文件和日志文件

cd 
mkdir -p ./data/rabbitmq/{logs,conf,data}

2.3、创建部署脚本


cd 
mkdir -p shell
vi ./shell/rabbitmq.sh

内容
#!/bin/sh 
echo "空脚本"
  

2.4、授权,测试脚本

cd 
# 授权
chmod +x ./shell/rabbitmq.sh
# 执行脚本
./shell/rabbitmq.sh

3、基准节点(mq1)部署

3.1、编辑部署脚本


cd  
vi ./shell/rabbitmq.sh

内容
#!/bin/sh


NAME=mq1
PORT=5672
PORT_WEB1=15672
PORT_WEB2=25672
VERSION=3.8-management-alpine
docker run -d \
  --name ${NAME} \
  --hostname ${NAME}\
  --add-host mq1:192.168.187.171 \
  --add-host mq2:192.168.187.172 \
  --add-host mq3:192.168.187.173 \
  -p ${PORT}:5672 \
  -p ${PORT_WEB1}:15672 \
  -p ${PORT_WEB2}:25672 \
  -p 4369:4369 \
  -p 35197:35197 \
  -e "RABBITMQ_LOGS=/var/log/rabbitmq/rabbit.log" \
  -v /etc/localtime:/etc/localtime \
  -v /home/hd/data/rabbitmq:/var/lib/rabbitmq \
  -v /home/hd/data/rabbitmq/logs:/var/log/rabbitmq \
  --restart=unless-stopped rabbitmq:${VERSION}
 

3.2、执行启动脚本

cd  
# 启动
./shell/rabbitmq.sh

#查看docker实例启动情况
docker ps | grep rabbitmq

在这里插入图片描述

3.3、拷贝 erlang.cookie 给 其他节点


# 修改cookie文件权限,方便传输
sudo chmod 777  /home/hd/data/rabbitmq/.erlang.cookie

# 拷贝给 其他节点
scp  /home/hd/data/rabbitmq/.erlang.cookie root@192.168.187.172:/home/hd/data/rabbitmq/.erlang.cookie

scp  /home/hd/data/rabbitmq/.erlang.cookie root@192.168.187.173:/home/hd/data/rabbitmq/.erlang.cookie

# 设置.erlang.cookie权限
sudo chmod 600 /home/hd/data/rabbitmq/.erlang.cookie

3.4、建立可远程访问的管理员admin,密码为123456

#  添加用户 admin,密码 123456
docker exec mq1 rabbitmqctl add_user admin 123456

# 给admin用户分配 administrator角色
docker exec mq1 rabbitmqctl set_user_tags admin administrator

# 设置 分区为/,拥有对所有资源的 读写配置权限
docker exec mq1 rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"

3.5、建立应用使用的普通用户bpm,密码为bpm

docker exec mq1 rabbitmqctl add_user bpm bpm
docker exec mq1 rabbitmqctl set_permissions -p / bpm ".*" ".*" ".*"

4、其他节点 部署

4.1、设置.erlang.cookie权限

# 设置.erlang.cookie权限
sudo chmod 600 /home/hd/data/rabbitmq/.erlang.cookie

4.2、编辑部署脚本


cd  
vi ./shell/rabbitmq.sh

内容

  
#!/bin/sh
 
# NAME是唯一改动点
NAME=mq2
PORT=5672
PORT_WEB1=15672
PORT_WEB2=25672
VERSION=3.8-management-alpine
docker run -d \
  --name ${NAME} \
  --hostname ${NAME}\
  --add-host mq1:192.168.187.171 \
  --add-host mq2:192.168.187.172 \
  --add-host mq3:192.168.187.173 \
  -p ${PORT}:5672 \
  -p ${PORT_WEB1}:15672 \
  -p ${PORT_WEB2}:25672 \
  -p 4369:4369 \
  -p 35197:35197 \
  -e "RABBITMQ_LOGS=/var/log/rabbitmq/rabbit.log" \
  -v /etc/localtime:/etc/localtime \
  -v /home/hd/data/rabbitmq:/var/lib/rabbitmq \
  -v /home/hd/data/rabbitmq/logs:/var/log/rabbitmq \
  --restart=unless-stopped rabbitmq:${VERSION}
 

4.3、执行启动脚本

cd  
# 启动
./shell/rabbitmq.sh

#查看docker实例启动情况
docker ps | grep rabbitmq

4.4、其他节点(mq2,mq3) 加入 基准节点(mq1)的集群中

—​ram参数:表示从节点为内存结点,无此参数为磁盘节点

# mq2机器

docker exec mq2 rabbitmqctl stop_app
docker exec mq2 rabbitmqctl reset
docker exec mq2 rabbitmqctl join_cluster --ram rabbit@mq1
docker exec mq2 rabbitmqctl start_app


# mq3机器
docker exec mq3 rabbitmqctl stop_app
docker exec mq3 rabbitmqctl reset
docker exec mq3 rabbitmqctl join_cluster --ram rabbit@mq1
docker exec mq3 rabbitmqctl start_app

4.5、设置镜像策略

  1. 在集群中,只需要在一个节点上设置镜像队列,设置操作会同步到其他节点。
  2. 我这里在mq1节点上操作
  3. 没有配置就是普通集群
# 匹配所有队列,并将镜像配置到集群中的所有节点
docker exec mq1 rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'

4.6、查看集群状态

docker exec  mq1 rabbitmqctl cluster_status

在这里插入图片描述

5、验证

http://192.168.187.172:15672/#/

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值