【问题标题】:RabbitMQ - Join_Cluster - no function clause matchingRabbitMQ - Join_Cluster - 没有函数子句匹配
【发布时间】:2019-03-19 06:20:41
【问题描述】:

我有 2 个 RabbitMQ 服务器并尝试按照此链接 https://haptik.ai/tech/rabbitmq-cluster-failover/ 进行集群。当我执行以下语句时,在 server1 和 server2 中完成所有必需的设置。我收到了错误

rabbitmqctl join_cluster rabbit@server1.domain.com

请在下方查看详细的错误信息

Clustering node rabbit@INCHNACCWAS01 with rabbit@server1.domain.com
** (FunctionClauseError) no function clause matching in RabbitMQCtl.format_error/3

    The following arguments were given to RabbitMQCtl.format_error/3:

        # 1
        {:badmatch, {:error, {:node_name, :short}}}

        # 2
        %{disc: false, longnames: false, node: :rabbit@INCHNACCWAS01, ram: false, timeout: :infinity}

        # 3
        RabbitMQ.CLI.Ctl.Commands.JoinClusterCommand

    (rabbitmqctl) lib/rabbitmqctl.ex:367: RabbitMQCtl.format_error/3
    (rabbitmqctl) lib/rabbitmqctl.ex:124: anonymous fn/5 in RabbitMQCtl.exec_command/2
    (rabbitmqctl) lib/rabbitmqctl.ex:45: RabbitMQCtl.main/1
    (elixir) lib/kernel/cli.ex:105: anonymous fn/3 in Kernel.CLI.exec_fun/2

【问题讨论】:

  • Erlang cookie 文件在所有节点之间是否相同?

标签: rabbitmq rabbitmqctl


【解决方案1】:

这是该版本的 RabbitMQ 中的一个已知错误。请升级到最新版本。


注意:RabbitMQ 团队会监控 rabbitmq-users mailing list,并且仅有时会回答 StackOverflow 上的问题。

【讨论】:

    【解决方案2】:

    您可以使用rabbitmqctl status 了解更多信息。

    [root@node1 ~]# rabbitmqctl status
    Status of node rabbit@node1 ...
    

    这意味着你当前的节点名称是node1,你应该使用 rabbitmqctl join_cluster rabbit@node1 命令。有时 RABBITMQ 节点名与 HOSTNAME 不同。

    根据此方法,您可以仔细检查此实例和目标实例的 EXACT 节点名称,然后创建正确的添加集群命令。

    【讨论】:

    • 这个问题很难发现,非常感谢
    【解决方案3】:

    我用的时候

    rabbitmqctl join_cluster rabbit@ip
    

    我得到这个错误,然后我使用

    rabbitmqctl join_cluster rabbit@hostname
    

    问题已解决。也许您可以使用主机名。

    【讨论】:

      猜你喜欢
      • 2017-11-30
      • 2015-03-20
      • 1970-01-01
      • 1970-01-01
      • 2017-11-26
      • 1970-01-01
      • 1970-01-01
      • 2023-03-13
      • 2019-09-24
      相关资源
      最近更新 更多