服务器重启后自动重新连接到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集群。