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

posted @ 2021-10-08 17:31  klvchen  阅读(306)  评论(0)    收藏  举报