docker-compose 搭建 rabbitmq 集群 delayed_message_exchange | 20230214

主机名 IP
test1 172.16.16.119
test2 172.16.16.120
test3 172.16.16.121

在 test1 上操作,其他两台机子类似

mkdir -p /data/docker-compose/rabbitmq-delayed/etc/conf
cd /data/docker-compose/rabbitmq-delayed

# 其他两台集群修改 container_name,hostname,RABBITMQ_NODENAME
cat >> docker-compose.yaml << EOF
version: '3.4'
services:
  rabbitmq:
    image: harbor.junengcloud.com/rabbitmq/rabbitmq:3.7.17-alpine-delayed_message_exchange
    deploy:
      resources:
        limits:
          cpus: '2'
          memory: 3G
    network_mode: "host"
    volumes:
      - ./data:/var/lib/rabbitmq
      - ./etc/hosts:/etc/hosts
      - ./etc/conf:/etc/rabbitmq
      - /etc/localtime:/etc/localtime
    container_name: rabbitmq1
    hostname: rabbitmq1
    environment:
      - RABBITMQ_NODENAME=rabbitmq1  # 每个节点不一样
      - RABBITMQ_ERLANG_COOKIE='huidiancloud'
    restart: always
EOF

cd /data/docker-compose/rabbitmq-delayed/etc
# 添加主机名
cat >> hosts << EOF 
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
172.16.16.119 test1 rabbitmq1
172.16.16.120 test2 rabbitmq2
172.16.16.121 test3 rabbitmq3
EOF

cd /data/docker-compose/rabbitmq-delayed/etc/conf
# 添加开机启动的插件
cat >> enabled_plugins << EOF
[rabbitmq_management,rabbitmq_mqtt,rabbitmq_delayed_message_exchange].
EOF

cat >> rabbitmq.conf << EOF
# 设置端口,用户名和密码
loopback_users.guest = false
listeners.tcp.default = 5672
default_user = yueneng
default_pass = Ynt2022
management.listener.port = 15672
management.listener.ssl = false
EOF

cd /data/docker-compose/rabbitmq-delayed
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

# 设置镜像模式
rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'
posted @ 2022-07-20 15:42  klvchen  阅读(94)  评论(0)    收藏  举报