我一直在阅读有关设置 dockerized RabbitMQ 集群的一些资料,谷歌在同一台机器上提供了各种结果。
我正在尝试跨多台机器设置 RabbitMQ 集群。
我有三台机器,名称分别为 dockerswarmmodemaster1dockerswarmmodemaster2dockerswarmmodemaster3在第一台机器 (dockerswarmmodemaster1) 上,我发出以下命令:

docker run -d -p 4369:4369 -p 5671:5671 -p 5672:5672 -p 15671:15671 -p 15672:15672 \
    -p 25672:25672 --hostname dockerswarmmodemaster1 --name roger_rabbit \
    -e RABBITMQ_ERLANG_COOKIE='secret cookie here' rabbitmq:3-management
现在这启动了一个 rabbitMQ 就好了,我可以转到 15672 上的管理页面,看看它是否按预期工作。
然后我通过 SSH 连接到我的第二台机器(dockerswarmmodemaster2),这是我坚持的一点。我一直在尝试以下命令的变体:
docker run -d -p 4369:4369 -p 5671:5671 -p 5672:5672 -p 15671:15671  \
    -p 15672:15672 -p 25672:25672 --name jessica_rabbit -e CLUSTERED=true \
    -e CLUSTER_WITH=rabbit@dockerswarmmodemaster1 \
    -e RABBITMQ_ERLANG_COOKIE='secret cookie here' \
    rabbitmq:3-management
无论我尝试什么,两台 RabbitMQ 机器上的网页都说“集群链接”部分下没有集群。我还没有尝试涉及第三台机器。
所以 - 更多信息:
  • 机器名称可由 DNS 解析。
  • 我已经尝试在两台机器上的 docker run 命令中使用 --net=host 开关;没有变化。
  • 我没有使用 docker swarm 或 swarm 模式。
  • 我没有安装 docker compose。如果可能,我宁愿不使用它。

  • 有没有办法从 docker run 命令执行此操作,或者我是否必须下载 rabbit admin cli 并手动加入集群?

    最佳答案

    你可以使用这个插件 https://github.com/aweber/rabbitmq-autocluster 来创建一个 RabbitMQ docker 集群。

    该插件使用 etcd2consul 作为服务发现,这样您就不需要使用 rabbitmqctl 命令行。

    我将它与 docker swarm 一起使用,但这不是必需的。

    Here 是结果

    关于docker - 如何设置一个简单的 dockerized RabbitMQ 集群?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41302117/

    10-09 05:17
    查看更多