【问题标题】:Rabbitmq primary node rejoining a clusterRabbitmq 主节点重新加入集群
【发布时间】:2017-04-05 03:55:48
【问题描述】:

我有一个由 3 个 rabbitmq 节点组成的集群,分布在 3 个不同的服务器上。第二个和第三个节点加入第一个节点并形成集群。在测试故障转移的过程中,我发现一旦主节点被杀死,我就无法让它重新加入集群。文档没有说明我必须在启动后使用 join_cluster 或任何其他命令。我尝试了 join_cluster 但它被拒绝,因为名称的集群与节点主机相同。有没有办法让它工作?

cluster_status 显示以下内容(不是来自主节点):

Cluster status of node 'rabbit@<secondary>' ...
[{nodes,[{disc,['rabbit@<primary>','rabbit@<secondary>',
                'rabbit@<tertiary>']}]},
 {running_nodes,['rabbit@<secondary>','rabbit@<tertiary>']},
 {cluster_name,<<"rabbit@<primary>">>},
 {partitions,[]}]

【问题讨论】:

    标签: rabbitmq cluster-computing failover


    【解决方案1】:

    来自here的引述

    已加入集群的节点可以随时停止。 他们也可以崩溃。在这两种情况下,集群的其余部分 继续运行不受影响,节点自动“赶上” 与其他集群节点重新启动时一起使用。

    所以你只需要启动你杀死/停止的节点。它是否是“主要”并没有什么区别 - 如果它是主要的然后被杀死,其他一些节点将成为主要的。

    我刚刚对此进行了测试(当然是使用 docker)并按预期工作。

    【讨论】:

    • 不适合我。如上面的消息所示。它没有显示主节点正在运行。
    【解决方案2】:

    在集群中的一个节点上,使用命令

    rabbitmqctl forget_cluster_node rabbit@rabbitmq1
    

    使当前集群忘记旧的主集群。 现在您应该能够重新加入旧主 (rabbitmq1) 上的集群

    rabbitmqctl stop_app
    rabbitmqctl join_cluster rabbit@rabbitmq2
    rabbitmqctl start_app
    

    reference cluster guide

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-15
      • 1970-01-01
      • 1970-01-01
      • 2021-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-18
      相关资源
      最近更新 更多