docker-compose 搭建 rabbitmq:3.7.25-management-alpine 集群
| IP | hostname | 备注 |
|---|---|---|
| 172.16.16.160 | test1 | 集群节点1 |
| 172.16.16.161 | test2 | 集群节点2 |
| 172.16.16.162 | test3 | 集群节点3 |
在所有节点上操作
mkdir -p /data/docker-compose/rabbitmq/conf
cd /data/docker-compose/rabbitmq/conf
cat > hosts << EOF
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
172.16.16.160 test1 rabbitmq1
172.16.16.161 test2 rabbitmq2
172.16.16.162 test3 rabbitmq3
EOF
创建 yaml 文件和启动 rabbitmq
在 test1 上操作
cd /data/docker-compose/rabbitmq
cat > docker-compose.yaml << EOF
version: '3.4'
services:
rabbitmq:
image: rabbitmq:3.7.25-management-alpine
network_mode: "host"
volumes:
- ./data:/var/lib/rabbitmq
- ./conf/hosts:/etc/hosts
- /etc/localtime:/etc/localtime
container_name: rabbitmq1
hostname: rabbitmq1
environment:
- RABBITMQ_NODENAME=rabbitmq1
- RABBITMQ_ERLANG_COOKIE='huidiancloud'
- RABBITMQ_DEFAULT_USER=crm
- RABBITMQ_DEFAULT_PASS=CrmRabBi88
restart: always
EOF
docker-compose up -d
在 test2 上操作
cd /data/docker-compose/rabbitmq
cat > docker-compose.yaml << EOF
version: '3.4'
services:
rabbitmq:
image: rabbitmq:3.7.25-management-alpine
network_mode: "host"
volumes:
- ./data:/var/lib/rabbitmq
- ./conf/hosts:/etc/hosts
- /etc/localtime:/etc/localtime
container_name: rabbitmq2
hostname: rabbitmq2
environment:
- RABBITMQ_NODENAME=rabbitmq2
- RABBITMQ_ERLANG_COOKIE='huidiancloud'
- RABBITMQ_DEFAULT_USER=crm
- RABBITMQ_DEFAULT_PASS=CrmRabBi88
restart: always
EOF
docker-compose up -d
在 test3 上操作
cd /data/docker-compose/rabbitmq
cat > docker-compose.yaml << EOF
version: '3.4'
services:
rabbitmq:
image: rabbitmq:3.7.25-management-alpine
network_mode: "host"
volumes:
- ./data:/var/lib/rabbitmq
- ./conf/hosts:/etc/hosts
- /etc/localtime:/etc/localtime
container_name: rabbitmq3
hostname: rabbitmq3
environment:
- RABBITMQ_NODENAME=rabbitmq3
- RABBITMQ_ERLANG_COOKIE='huidiancloud'
- RABBITMQ_DEFAULT_USER=crm
- RABBITMQ_DEFAULT_PASS=CrmRabBi88
restart: always
EOF
docker-compose up -d
加入集群
在 test2 上操作
docker exec -it rabbitmq2 /bin/bash
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster rabbitmq1@test1
rabbitmqctl start_app
exit
在 test3 上操作
docker exec -it rabbitmq3 /bin/bash
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster rabbitmq1@test1
rabbitmqctl start_app
exit
查看集群状态
在 test1 上操作
docker exec -it rabbitmq1 /bin/bash
rabbitmqctl cluster_status
rabbitmq 模式介绍
https://www.rabbitmq.com/getstarted.html
集群需要配置镜像模式,参考 https://www.cnblogs.com/klvchen/p/14029336.html

浙公网安备 33010602011771号