Rabbitmq主节点重新加入群集
问题描述:
我有3个rabbitmq节点的群集分布在3台不同的服务器上。第二个和第三个节点加入第一个节点并形成群集。在测试故障转移的过程中,我发现一旦主节点被终止,我无法使其重新加入群集。该文档没有说明我必须在启动后使用join_cluster或任何其他命令。我尝试了join_cluster,但由于具有名称的集群与节点主机相同,因此它被拒绝。有没有办法做到这一点?Rabbitmq主节点重新加入群集
cluster_status显示以下(不从主节点):
Cluster status of node '[email protected]<secondary>' ...
[{nodes,[{disc,['[email protected]<primary>','[email protected]<secondary>',
'[email protected]<tertiary>']}]},
{running_nodes,['[email protected]<secondary>','[email protected]<tertiary>']},
{cluster_name,<<"[email protected]<primary>">>},
{partitions,[]}]
答
甲引自here
已接合到群集中的节点可以在任何时候停止。 他们也可以崩溃。在这两种情况下,群集 的其余部分继续不受影响地运行,并且节点在其他群集节点再次启动时自动“赶上” 。
所以你只需要启动你杀死/停止的节点。如果它是“主要的”或不是有效的 - 如果它是主要的,然后被杀死,则其他一些节点成为主要节点。
我刚刚测试过这个(当然还有docker),并按预期工作。
答
在其上的集群中的节点中的一个,使用命令
rabbitmqctl forget_cluster_node [email protected]
为了使当前簇忘记旧的主。 现在,你应该能够归队的老主(rabbitmq1)集群
rabbitmqctl stop_app
rabbitmqctl join_cluster [email protected]
rabbitmqctl start_app
不适合我。如上面的消息所示。它不显示主节点正在运行。 – sharman