如何启用RabbitMQ Docker容器的群集

时间:2016-07-29 14:55:46

标签: docker rabbitmq message-queue amqp message-bus

尝试使用官方RabbitMQ Docker镜像启用群集时遇到问题 - https://hub.docker.com/_/rabbitmq/。我使用docker-compose来启动我的基础架构,而我无法获得" slave"加入集群的节点。 当我在主服务器上运行rabbitmqctl cluster_status时,未列出从服务器。

以下是rabbitmqctl cluster_status的输出:

$ docker-compose exec master-rabbitmq bash
root@master-rabbitmq:/# rabbitmqctl cluster_status
Cluster status of node 'rabbit@master-rabbitmq' ...
[{nodes,[{disc,['rabbit@master-rabbitmq']}]},
 {running_nodes,['rabbit@master-rabbitmq']},
 {cluster_name,<<"rabbit@master-rabbitmq">>},
 {partitions,[]},
 {alarms,[{'rabbit@master-rabbitmq',[]}]}]

我的docker-compose.yml如下所示,仅供参考。

version: "2"
services:
  master-rabbitmq:
      image: rabbitmq:3-management
      hostname: master-rabbitmq
      environment:
        - RABBITMQ_ERLANG_COOKIE=super secret token
      ports:
        - "4369:4369"
        - "5671:5671"
        - "5672:5672"
        - "15671:15671"
        - "15672:15672"
        - "25672:25672"

  slave1-rabbitmq:
      image: rabbitmq:3-management
      hostname: slave1-rabbitmq
      links:
        - "master-rabbitmq:master-rabbitmq"
      environment:
        - RABBITMQ_ERLANG_COOKIE=super secret token

  slave2-rabbitmq:
      image: rabbitmq:3-management
      hostname: slave2-rabbitmq
      links:
        - "master-rabbitmq:master-rabbitmq"
      environment:
        - RABBITMQ_ERLANG_COOKIE=super secret token

1 个答案:

答案 0 :(得分:1)

您可能需要运行

rabbitmqctl join_cluster rabbit@master-rabbitmq

在每个从节点上