【问题标题】:RabbitMQ Cannot connect the node in the clusterRabbitMQ 无法连接集群中的节点
【发布时间】:2016-07-01 12:08:42
【问题描述】:

我有 2 个节点,我想用它制作集群。我已经安装了 RabbitMq。

现在我正在停止第二个节点中的兔子应用程序并尝试像以下命令一样加入集群: sudo rabbitmqctl join_cluster rabbit@rabbit1

但它会抛出错误

> DIAGNOSTICS
> ===========
> 
> attempted to contact: [rabbit@TELXRMQ01]
> 
> rabbit@rabbit1:   * unable to connect to epmd (port 4369) on rabbit1:
> nxdomain (non-existing domain)
> 
> 
> current node details:
> - node name: 'rabbitmq-cli-34@rabbit2'
> - home dir: /var/lib/rabbitmq
> - cookie hash: A85MNn8I1UhtrGozi+m/2g==

我正在关注这个链接:https://www.rabbitmq.com/clustering.html 错误的cookie在两个节点中都相同,并且在两个节点中都打开了4369端口。

【问题讨论】:

    标签: rabbitmq


    【解决方案1】:

    有很多方法可以解决这个问题。

    在 RabbitMQ-3.6.9 和 Erlang v8.3.3 下

    • 更正并与.erlang.cookie的文件相同

      chgrp rabbitmq /var/lib/rabbitmq/.erlang.cookie
      chown rabbitmq /var/lib/rabbitmq/.erlang.cookie
      chmod 400 /var/lib/rabbitmq/.erlang.cookie
      
    • 正确的主机和主机名

      • 主持人:

        cat /etc/hosts
        

        结果:

        127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
        ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
        
        127.0.0.1     rabbitmq252
        192.168.4.249 rabbitmq249
        192.168.4.251 rabbitmq251
        192.168.4.252 rabbitmq252
        
      • 主机名:

        cat /etc/hostname
        

        结果:

        rabbitmq252
        
    • 删除集群节点

      如果集群已经有节点,或者状态发生变化,甚至某个节点disagree另一个节点。您可以通过以下命令删除节点:

      rabbitmqctl forget_cluster_node rabbit@rabbitmq252
      
    • 清除 Erlang Mnesia 数据库

      /var/lib/rabbitmq/的文件路径下有三个文件,如erl_crash.dump mnesia .erlang.cookie

      rm -rf /var/lib/rabbitmq/*
      
    • 杀死rabbitmq进程

      ps aux|grep rabbitmq
      kill -9 remaining_process
      
    • 重新安装 RabbitMQ 和 Erlang

    无论如何,如果你遇到问题,你应该:

    1. 读取服务状态

      systemctl status rabbitmq-server.service -l
      # or
      service rabbitmq-server status
      # or
      journalctl -ex
      
    2. 读取服务日志

      可以在服务状态下找到路径。

      cat /var/log/rabbitmq/rabbit@rabbitmq252.log
      # or
      cat /var/log/rabbitmq/rabbit@rabbitmq251-sasl.log
      
    3. 读取端口状态

      netstat -ntlp
      

    【讨论】:

      【解决方案2】:

      我通过在 /etc/hosts 文件中添加主机解决了这个问题。

      【讨论】:

      • 你应该已经将陈健的答案标记为正确答案,并注明你修改了/etc/hosts
      【解决方案3】:

      这也取决于版本,因此您必须使用join_clustercluster

      【讨论】:

        猜你喜欢
        • 2019-07-05
        • 2019-01-15
        • 2016-07-11
        • 2018-03-31
        • 1970-01-01
        • 1970-01-01
        • 2018-06-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多