【问题标题】:Auto reconnect to RabbitMQ cluster after server restart服务器重启后自动重新连接到 RabbitMQ 集群
【发布时间】:2015-02-03 13:06:46
【问题描述】:

我有 RabbitMQ 的主从配置。作为两个 Docker 容器,具有动态内部 IP(每次重启时都会更改)。

集群在干净运行时工作正常,但如果其中一台服务器重新启动,它无法重新连接到集群:

rabbitmqctl join_cluster --ram rabbit@master
Clustering node 'rabbit@slave' with 'rabbit@master' ...
Error: {ok,already_member}

以下:

rabbitmqctl cluster_status
Cluster status of node 'rabbit@slave' ...
[{nodes,[{disc,['rabbit@slave']}]}]

表示该节点不在集群中。

只有我发现它删除了这个节点,然后才尝试重新加入集群,比如:

rabbitmqctl -n rabbit@master forget_cluster_node rabbit@slave
rabbitmqctl join_cluster --ram rabbit@master

这行得通,但对我来说看起来不太好。我相信应该有更好的方法来重新加入集群,而不是忘记并再次加入。我看到还有一个命令update_cluster_nodes,但似乎这有所不同,不确定是否有帮助。

在容器重启时重新加入集群的正确方法是什么?

【问题讨论】:

    标签: rabbitmq docker google-compute-engine fault-tolerance


    【解决方案1】:

    我知道这已经开了一年,但我会回答以防万一它可能对某人有所帮助。

    我相信这个问题已经在最近的 RabbitMQ 版本中得到解决。

    我使用Rabbit management 3.6.5 image 实现了Dockerized RabbitMQ Cluster,并且我的节点能够在容器或Docker 主机重新启动时自动重新加入集群。

    【讨论】:

      猜你喜欢
      • 2016-07-23
      • 2020-07-03
      • 1970-01-01
      • 2012-01-29
      • 1970-01-01
      • 1970-01-01
      • 2018-11-27
      • 2011-04-21
      相关资源
      最近更新 更多