RabbitMQ集群与不同服务器上的docker

时间:2016-09-13 22:49:50

标签: docker

尝试在群集不同的服务器中配置RabbitMQ时出现此错误。

root @ rabbitmq2:/#rabbitmqctl join_cluster rabbit @ rabbit1 群集节点兔子@ rabbitmq2与兔子@ rabbit1 ... 错误:无法连接节点[rabbit @ rabbit1]:nodedown

诊断

试图联系:[rabbit @ rabbit1]

兔子@兔子1: *无法连接到rabbit1上的epmd(端口4369):NXDOMAIN(不存在的域)

当前节点详细信息: - 节点名称:'RabbitMQ-cli-47 @ rabbitmq2' - 主页目录:/ var / lib / RabbitMQ - 哈希cookie:Q6urB / 4YJU5p5MdmILwyaw ==

我已经尝试了一切,但找不到解决方案。 我认为问题与docker容器有关,其中服务器2无法访问服务器1.

有人有这个问题吗?

1 个答案:

答案 0 :(得分:0)

您没有解释如何设置Docker容器。启动容器我遇到了同样的问题:

docker run --hostname rabbit1.example.com --add-host rabbit1.example.com:192.168.33.20 --add-host rabbit2.example.com:192.168.33.21 --name rabbit -p 15672:15672 -p 4369:4369 -p 5672:5672 -p 5671:5671 -p 25672:25672 -e RABBITMQ_ERLANG_COOKIE='some cookie' -d rabbitmq:3-management
然后,RabbitMQ将节点命名为rabbit@rabbit1,从主机名中删除域。使用没有域的主机名创建Docker容器时修复了该问题:

docker run --hostname rabbit1 --add-host rabbit1:192.168.33.20 --add-host rabbit2:192.168.33.21 --name rabbit -p 15672:15672 -p 4369:4369 -p 5672:5672 -p 5671:5671 -p 25672:25672 -e RABBITMQ_ERLANG_COOKIE='some cookie' -d rabbitmq:3-management

现在join_cluster rabbit@rabbit1在rabbit2容器上成功了。

我还尝试让节点使用rabbitmqctl join_cluster rabbit@rabbit1.example.com将整个域加入群集,这让我更进一步,但我仍然面临着主机名问题。