服务器重启后自动重新连接到RabbitMQ集群

我有RabbitMQ的主从configuration。 作为两个Docker容器,具有dynamic内部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']}]}] 

说该节点不在一个集群中。

只有这样,我发现它删除此节点,然后才尝试重新join群集,如:

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

这有效,但对我来说并不好看。 我相信应该有更好的方式来重新join集群,而不是忘记和重新join。 我看到有一个命令update_cluster_nodes也,但似乎这个东西不同,不知道是否可以帮助。

集装箱重启时重新join集群的正确方法是什么?

我意识到,这已经打开了一年,但我虽然我会回答,以防万一它可能有助于某人。

我相信这个问题已经在最近的RabbitMQ发行版中解决了。

我使用Rabbitpipe理3.6.5镜像实现了一个Docker化的RabbitMQ集群 ,我的节点能够在容器或Docker主机重新启动时自动重新join集群。