0
点赞
收藏
分享

微信扫一扫

使用docker-compose.yml安装rabbitmq集群

舟海君 2022-02-09 阅读 58


1.拉取镜像

集群中每个节点都需要执行

docker pull rabbitmq:3.8.3-management

2.上传docker-compose文件,设置可执行权限

相关文地址​

cd /usr/local/bin/
chmod +x /usr/local/bin/docker-compose

3.创建有关目录

路径根据实际需求来定(hosts文件下同)

​mkdir -p /home/rabbitmq/{config,data}​

config目录存放配置文件以及一些脚本,data存放rabbitmq程序数据

添加hosts文件 (最好不要在系统hosts文件中设置)

tee /home/rabbitmq/hosts <<-'EOF'
192.168.2.163 rabbitmq1
192.168.2.164 rabbitmq2
192.168.2.165 rabbitmq3
EOF

4.在上一步中创建的rabbitmq目录下,创建docker-compose.yml文件

# cat  /home/rabbitmq/docker-compose.yml

version: '3'

services:
rabbitmq1:
image: rabbitmq:3.8.3-management
container_name: rabbitmq1
restart: always
hostname: rabbitmq1
ports:
- 4369:4369
- 5671:5671
- 5672:5672
- 15672:15672
- 25672:25672
- 15692:15692
volumes:
- ./data:/var/lib/rabbitmq
- ./config/rabbitmq.sh:/etc/rabbitmq/rabbitmq.sh
- ./hosts:/etc/hosts
environment:
- RABBITMQ_DEFAULT_USER=guest
- RABBITMQ_DEFAULT_PASS=password
- RABBITMQ_ERLANG_COOKIE=thisisacookie

这是节点1的docker-compose.yml文件内容,节点2和节点3只需要将文件中的rabbitmq1改成rabbitmq2或者rabbitmq3即可


注意:在挂载参数中,必须加上“- ./hosts:/etc/hosts”,否则集群无法成功会报“Error: unable TO perform an operation ON node 'rabbit@rabbitmq1'. Please see diagnostics information AND suggestions below.”


5.启动

各节点均在"/home/rabbitmq"路径下执行如下命令:

​docker-compose up -d​


关闭防火墙或者开放对应的映射端口


6.执行集群命令

在第一步中事先规划好了各节点rabbitmq的存储方式,即节点1是disk,节点2和节点3都是ram

所以在直接完docker-compose后,执行命令进入各docker节点:

# 该命令以节点1为例
docker exec -it rabbitmq1 /bin/bash

然后执行对应的集群命令:
disk节点(节点1主节点)执行:

rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app

ram节点(节点2和节点3)执行:

rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster --ram rabbit@rabbitmq1
rabbitmqctl start_app


如果后期需要修改节点的存储方式可以使用:rabbitmqctl change_cluster_node_type disc/ram     #更改节点为磁盘或内存节点


7.检查集群各节点状态

在节点下执行:​​rabbitmqctl cluster_status​

检查插件情况:​​rabbitmq-plugins list​

8.设置策略

进入任意一个RabbitMQ节点,执行如下命令:

​rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'​

查看是否设置成功:​​rabbitmqctl list_policies​



举报

相关推荐

0 条评论