RabbitMQ无法启动,TCP连接成功但Erlang分发失败

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RabbitMQ无法启动,TCP连接成功但Erlang分发失败相关的知识,希望对你有一定的参考价值。

我刚刚开始在Windows系统上学习和安装RabbitMQ。

我在自定义文件夹中安装Erlang VM和RabbitMQ,而不是默认文件夹(两者都有)。

然后我重新启动了我的电脑。

顺便说一下,我的电脑名称为“NULL”


我cd到RabbitMQ / sbin文件夹并使用命令:

rabbitmqctl status

但返回的信息是:

节点rabbit @ NULL的状态...

错误:无法对节点'rabbit @ NULL'执行操作。请参阅下面的诊断信息和建议。

最常见的原因是:

  • 目标节点无法访问(例如,由于主机名解析,TCP连接或防火墙问题)
  • CLI工具无法通过服务器进行身份验证(例如,由于CLI工具的Erlang cookie与服务器的不匹配)
  • 目标节点未运行

除了下面的诊断信息:

诊断

试图联系:[rabbit @ NULL]

兔@ NULL:

  • 在NULL上连接到epmd(端口4369)
  • epmd报告节点'rabbit'使用端口25672进行节点间和CLI工具流量
  • TCP连接成功但Erlang分发失败
  • 身份验证失败(被远程节点拒绝),请检查Erlang cookie

当前节点详情:

  • 节点名称:rabbitmqcli70 @ NULL
  • 有效用户的主目录:C: Users Jerry Song
  • Erlang cookie hash:51gvGHZpn0gIK86cfiS7vp ==

我尝试RESTART RabbitMQ,我得到的是:

错误:名称为“rabbit”的节点已在“NULL”上运行


顺便说一句,我的电脑名称是“NULL”我已启用防火墙中的所有端口。

答案

如果您在Windows10(而不是Windows默认位置)中使用开发工具/软件的专用驱动器文件夹位置,则可以通过https://www.rabbitmq.com/cli.html描述的同步erlang cookie的一种方法是复制cookie,如下所述。

请注意,在我的情况下,HOMEDRIVE和HOMEPATH环境变量都没有设置。


将“C: Windows system32 config systemprofile .erlang.cookie”复制到“C: Users %USERNAME%。erlang.cookie”后,

错误“tcp连接成功但Erlang分发失败”已解决。


现在我可以成功使用“rabbitmqctl.bat status”命令。因此,没有必要安装在默认位置来解决此错误,因为同步cookie将解决该错误。

另一答案

https://groups.google.com/forum/#!topic/rabbitmq-users/a6sqrAUX_Fg描述了在全新安装的Rabbit MQ上存在cookie不匹配的问题。 Windows上的简单解决方案是同步cookie

这里也有描述:http://www.rabbitmq.com/clustering.html#erlang-cookie

确保cookie在下面的1,2和3中同步

  1. 如果设置了HOMEDRIVE和HOMEPATH环境变量,则%HOMEDRIVE%%HOMEPATH%.erlang.cookie(对于用户%USERNAME%通常为C:Users\%USERNAME%.erlang.cookie
  2. %USERPROFILE%.erlang.cookie(通常是C:Users\%USERNAME%.erlang.cookie)如果HOMEDRIVE和HOMEPATH都没有设置
  3. 对于RabbitMQ Windows服务 - %USERPROFILE%.erlang.cookie(通常是C:WINDOWSsystem32configsystemprofile

必须通过复制C:WINDOWSsystem32configsystemprofile文件夹中的cookie文件来同步Windows服务帐户和运行CLI工具的用户使用的cookie文件。

另一答案

我使用默认安装文件夹在我的电脑中重新安装了RabbitMQ

然后检查命令:

rabbitmqctl status

它现在工作,而不是Erlang VM的问题。(意味着Er可以安装在其他的foler)

如果我们不使用RabbitMQ默认设置需要foler(C: Program Files RabbitMQ Server),它会导致一些我现在无法找到的问题(比如这个)

如果有人发现它,我希望你能告诉我为什么以及如何解决。

另一答案

在Centos。

  1. 将ip nodename对添加到每个节点上的/ etc / hosts。
  2. 在每个从节点上重启rabbitmq-server服务。

适合我。

以上是关于RabbitMQ无法启动,TCP连接成功但Erlang分发失败的主要内容,如果未能解决你的问题,请参考以下文章

hiveserver2启动成功但无法通过beeline连接

Rabbitmq服务器无法启动

RabbitMQ的下载安装

RabbitMQ 启动但无法访问管理界面

Rabbit MQ安装后无法成功启动

C TCP无法检测到断开的连接[重复]