专栏首页大数据入坑指南rabbitmq搭建集群踩坑记

rabbitmq搭建集群踩坑记

三台节点启动之后,想要使用s146作为集群主节点,在s151上将该节点加入s146集群时,报如下错误。

[root@s151 rabbitmq]# rabbitmqctl join_cluster rabbit@s146
Clustering node rabbit@s151 with rabbit@s146 ...
Error: unable to connect to nodes [rabbit@s146]: nodedown

DIAGNOSTICS
===========

attempted to contact: [rabbit@s146]

rabbit@s146:
  * connected to epmd (port 4369) on s146
  * epmd reports node 'rabbit' running on port 25672
  * TCP connection succeeded but Erlang distribution failed
  * suggestion: hostname mismatch?
  * suggestion: is the cookie set correctly?
  * suggestion: is the Erlang distribution using TLS?

current node details:
- node name: 'rabbitmq-cli-30368@s151'
- home dir: /root
- cookie hash: X8M4gNn7BBuuU5WV1cHdhw==

我在网上看到了很多人都碰到了这个错误,错误提示中也说了三种解决方案。 suggestion: hostname mismatch? hostname配置是否正确,对于hostname的配置

suggestion: is the cookie set correctly? .erlang.cookie设置是否正确,.erlang.cookie文件里面的字符串相当于一个密钥一样,一个节点想要加入某个集群,必须要和这个机器中的所有节点的.erlang.cookie内容一样,所以通常将主节点的.erlang.cookie文件分发给其它节点即可,关键是这个节点可能出现在两个位置/var/lib/rabbitmq/.erlang.cookie或者$HOME/.erlang.cookie。这样一来如何确定自己的.erlang.cookie文件在哪儿呢?这个要看rabbitmq的日志文件,如下所示:

=INFO REPORT==== 9-Apr-2018::14:57:21 ===
node           : rabbit@s151
home dir       : /root
config file(s) : /opt/rabbitmq/sbin/../etc/rabbitmq/rabbitmq.config (not found)
cookie hash    : HfR3DHABJqfPDV+hBgdzXQ==
log            : /opt/rabbitmq/sbin/../var/log/rabbitmq/rabbit@s151.log
sasl log       : /opt/rabbitmq/sbin/../var/log/rabbitmq/rabbit@s151-sasl.log
database dir   : /opt/rabbitmq/sbin/../var/lib/rabbitmq/mnesia/rabbit@s151

其中的home dir就是你的.erlang.cookie文件存放的目录,而这个cookie hash就是.erlang.cookie里面的值hash转换得到的,你可以比较cookie hash的值是不是一致来判断你的.erlang.cookie是否一致。我之前一直以为我的.erlang.cookie文件在/var/lib/rabbitmq/下,所以屡次操作都失败了,看了日志后发现节点的cookie hash不一致,才发现原来一直将.erlang.cookie这个文件的位置搞错了,所以看日志很重要。

suggestion: is the Erlang distribution using TLS? 这种情况目前好像还没碰到过。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python自学成才之路 类详细用法

    python是一门面向对象编程的语言,python的类和java中的类思想上有很多一样的地方,比如python类也是通过class修饰,里面也有成员属性,成员方...

    我是李超人
  • CentOs7搭建rabbitmq集群

    环境:三台centos7.4.1708_x86_64 机器 192.168.1.186、192.168.1.187、192.168.1.188

    我是李超人
  • IDEA旗舰版修改字体

    IDEA旗舰版和社区版修改字体大小的方式不一样,社区版的直接在settings下搜索color&font到font下修改字体即可。 旗舰版是在editor-...

    我是李超人
  • ARC无效时block的赋值

    forrestlin
  • 面向对象(二)【类的成员及修饰符】

    在上述类的成员中,普通字段是存储在对象之中的;其他成员均是存储在类中,也就是说无论创建了多少个对象,对象本身只保留成员中的普通字段,其他成员均存储在类中。

    用户1432189
  • 发现了合自己胃口的公众号,但文章太多翻来翻去真麻烦,还好我学了 Python

    有时候我们关注到宝藏型公众号时发现其历史文章已经好几百甚至上千篇了,而作者又只对其中自己认为比较好的几篇做了索引,我们翻来翻去实在太麻烦了,为了解决这种问题,我...

    Python小二
  • leetcode: 96. Unique Binary Search Trees

    JNingWei
  • 互联网金融的信息安全(二)安全需求

    不管是内部人员还是第三方,访问系统没有固定的设施,没有固定的网络隔离,有输入输出信息的交互,放在一个能被访问系统的边缘,必定会产生泄露风险。

    牛油果
  • python开发_tkinter_单选按钮

    E | hongtenzone@foxmail.com  B | http://www.cnblogs.com/hongten

    Hongten
  • 【专业技术】如何检测USB是否已经插入?

    usb是我们现代生活中不可或缺的一个东西,大家平常只要使用电脑,肯定都接触过usb吧。本篇文章对于大部分同学来说并没有实际意义,主要面向想了解USB的一些同学,...

    程序员互动联盟

扫码关注云+社区

领取腾讯云代金券