用docker-compose部署rabbitMQ集群可以用对等点发现机制吗?
docker吧
全部回复
仅看楼主
level 1
残冰幻梦 楼主
我试了很多方法,都不能成功找到其他节点
码如下:
version: '3.8'
services:
rabbit1:
image: rabbitmq:3.11-management
hostname: rabbit1
container_name: rabbit1
restart: unless-stopped
environment:
- RABBITMQ_ERLANG_COOKIE=${RABBITMQ_ERLANG_COOKIE}
- RABBITMQ_NODENAME=rabbit
# - RABBITMQ_USE_LONGNAME=true
- RABBITMQ_CLUSTER_FORMATION_CLASSIC_CONFIG_NODES_1=rabbit@rabbit1
- RABBITMQ_CLUSTER_FORMATION_CLASSIC_CONFIG_NODES_2=rabbit@rabbit2
- RABBITMQ_CLUSTER_FORMATION_CLASSIC_CONFIG_NODES_3=rabbit@rabbit3
volumes:
- rabbit1_data:/var/lib/rabbitmq
ports:
- "5673:5672"
- "15672:15672"
networks:
- rabbitmq-net
healthcheck:
test: ["CMD-SHELL", "cat /proc/net/tcp /proc/net/tcp6 | grep -q -E ':(1628|00000000:1628)'"]
interval: 10s
timeout: 5s
retries: 5
start_period: 30s
rabbit2:
image: rabbitmq:3.11-management
hostname: rabbit2
container_name: rabbit2
# depends_on:
# rabbit1:
# condition: service_healthy
restart: unless-stopped
environment:
- RABBITMQ_ERLANG_COOKIE=${RABBITMQ_ERLANG_COOKIE}
- RABBITMQ_NODENAME=rabbit
# - RABBITMQ_USE_LONGNAME=true
- RABBITMQ_CLUSTER_FORMATION_CLASSIC_CONFIG_NODES_1=rabbit@rabbit1
- RABBITMQ_CLUSTER_FORMATION_CLASSIC_CONFIG_NODES_2=rabbit@rabbit2
- RABBITMQ_CLUSTER_FORMATION_CLASSIC_CONFIG_NODES_3=rabbit@rabbit3
volumes:
- rabbit2_data:/var/lib/rabbitmq
networks:
- rabbitmq-net
healthcheck:
test: ["CMD-SHELL", "cat /proc/net/tcp /proc/net/tcp6 | grep -q -E ':(1628|00000000:1628)'"]
interval: 10s
timeout: 5s
retries: 5
start_period: 30s
rabbit3:
image: rabbitmq:3.11-management
hostname: rabbit3
container_name: rabbit3
# depends_on:
# rabbit1:
# condition: service_healthy
restart: unless-stopped
environment:
- RABBITMQ_ERLANG_COOKIE=${RABBITMQ_ERLANG_COOKIE}
- RABBITMQ_NODENAME=rabbit
# - RABBITMQ_USE_LONGNAME=true
- RABBITMQ_CLUSTER_FORMATION_CLASSIC_CONFIG_NODES_1=rabbit@rabbit1
- RABBITMQ_CLUSTER_FORMATION_CLASSIC_CONFIG_NODES_2=rabbit@rabbit2
- RABBITMQ_CLUSTER_FORMATION_CLASSIC_CONFIG_NODES_3=rabbit@rabbit3
volumes:
- rabbit3_data:/var/lib/rabbitmq
networks:
- rabbitmq-net
healthcheck:
test: ["CMD-SHELL", "cat /proc/net/tcp /proc/net/tcp6 | grep -q -E ':(1628|00000000:1628)'"]
interval: 10s
timeout: 5s
retries: 5
start_period: 30s
volumes:
rabbit1_data:
rabbit2_data:
rabbit3_data:
networks:
rabbitmq-net:
ipam:
driver: default
config:
- subnet: 172.18.0.0/24
gateway: 172.18.0.254
有大佬知道为什么吗?问ai也解决不了
2025年07月05日 12点07分 1
level 1
残冰幻梦 楼主
有个.env -- > RABBITMQ_ERLANG_COOKIE=g9eY2kX9Yywkcstv2Cz8eKDpRAW69ReD1H9jy4JANU0=
系统版本ubt22.04
docker版本 Docker version 20.10.24, build 297e128
2025年07月05日 12点07分 3
level 1
残冰幻梦 楼主
已经找到方法了,用挂载配置文件的方式能成。这个应该是环境变量名称注入的有问题[呵呵]
2025年08月12日 12点08分 4
1