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

nth*_*ack 7 erlang rabbitmq server

我是一个新手,刚开始学习并在Windows System上安装RabbitMQ。

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

然后,我重新启动了计算机。

顺便问一下?我的计算机名称是“ NULL”


我CD到RabbitMQ / sbin文件夹并使用命令?

rabbitmqctl status

但是返回消息是?

节点Rabbit @ NULL的状态...

错误:无法在节点“ rabbit @ NULL”上执行操作。请在下面查看诊断信息和建议。

最常见的原因是:

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

除了下面的诊断信息:

诊断学

尝试联系:[rabbit @ NULL]

rabbit @ NULL:

  • 在NULL上连接到epmd(端口4369)
  • epmd报告节点“兔子”使用端口25672进行节点间和CLI工具通信
  • TCP连接成功,但Erlang分发失败

  • 身份验证失败(被远程节点拒绝),请检查Erlang cookie

当前节点详细信息:

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

我已经尝试重新启动RabbitMQ,我得到的是?

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


顺便说一句?我的计算机名称为“ NULL”, 并且启用了防火墙中的所有端口。

Ris*_*ain 8

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%\.erlang.cookie(通常C:\Users\%USERNAME%\.erlang.cookie用于用户%USERNAME%),如果同时设置了HOMEDRIVE和HOMEPATH环境变量

  2. %USERPROFILE%\.erlang.cookie(通常C:\Users\%USERNAME%\.erlang.cookie)如果未同时设置HOMEDRIVEHOMEPATH

  3. 对于RabbitMQ Windows服务- %USERPROFILE%\.erlang.cookie(通常为C:\WINDOWS\system32\config\systemprofile

Windows服务帐户和运行CLI工具的用户使用的cookie文件必须通过从C:\WINDOWS\system32\config\systemprofile文件夹复制一个cookie文件来进行同步。


ila*_*nuk 7

如果您在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可以解决该错误。

  • 嗨,但就我而言,我确实在同一位置有文件,但仍然收到错误消息“TCP 连接成功但 Erlang 分发失败” (2认同)

Tar*_*kin 6

在我的情况下,类似的问题(由于 Erlang cookie 不匹配而导致身份验证失败)通过将.erlang.cookie文件从Windows系统目录复制C:\Windows\system32\config\systemprofile\.erlang.cookie%HOMEDRIVE%%HOMEPATH%\.erlang.cookie(分别%HOMEDRIVE%设置为H:%HOMEPATH%to \)来解决

Windows、Erlang OTP 24 和 RabbitMQ 3.8.19 的快速设置 TODO

  1. 从以下位置下载并安装 Erlang [ OTP 24 ](需要管理员权限):https: //www.erlang.org/downloads
  2. 设置ERLANG_HOME应该指向安装目录
  3. 从以下位置下载并安装最新的 [ 3.8.19 ] RabbitMQ(需要管理员权限): https ://github.com/rabbitmq/rabbitmq-server/releases/
  4. 请遵循: https: //www.rabbitmq.com/install-windows.html和/或 https://www.rabbitmq.com/install-windows-manual.html
  5. 设置RABBITMQ_SERVER应该指向安装目录
  6. 通过添加更新%PATH%;%RABBITMQ_SERVER%\sbin
  7. 从上面修复 Erlang-cookie 问题,请遵循: https: //www.rabbitmq.com/cli.html#erlang-cookie
  8. 通过运行命令启用 Web UI:%RABBITMQ_SERVER%/sbin/rabbitmq-plugins.bat enable rabbitmq_management
  9. 从第 #8 项(上面)中,由于缺少文件而出现错误:%USERPROFILEDIR%/AppData/Roaming/RabbitMQ/enabled_plugins->必须创建它%RABBITMQ_SERVER%/sbin/rabbitmq-plugins.bat enable rabbitmq_management并再次运行!
  10. 可能需要中途运行/重启
  11. 最后,登录:http://localhost:15672/ ( guest:guest ) RabbitMQ 网页用户界面

,或通过 cURL 检查: curl -i -u guest:guest http://localhost:15672/api/vhosts 应该收到如下响应:

        HTTP/1.1 200 OK
    cache-control: no-cache
    content-length: 186
    content-security-policy: script-src 'self' 'unsafe-eval' 'unsafe-inline'; 
    object-src 'self'
    content-type: application/json
    date: Tue, 13 Jul 2021 11:21:12 GMT
    server: Cowboy
    vary: accept, accept-encoding, origin
        [{"cluster_state":{"rabbit@hostname":"running"},"description":"Default virtual host","metadata":{"description":"Default virtual host","tags":[]},"name":"/","tags":[],"tracing":false}]
Run Code Online (Sandbox Code Playgroud)

PS 一些有用的 RabbitMQ CLI 命令(复制粘贴):

  • %RABBITMQ_SERVER%/sbin/rabbitmqctl start_app
  • %RABBITMQ_SERVER%/sbin/rabbitmqctl stop_app
  • %RABBITMQ_SERVER%/sbin/rabbitmqctl status

PPS更新:关于这个主题的好文章:https ://www.journaldev.com/11655/spring-rabbitmq


lil*_*mad 5

我是如何解决我的问题的

这主要是由于全新安装的 Rabbit MQ 上的 cookie 不匹配造成的

按照这 2 个步骤

1. copy the .erlang.cookie file from C:\Windows\System32\config\systemprofile paste it into 
C:\Users\["your user nameusername"] folder

2. run rabbitmq-service.bat stop and rabbitmq-service.bat start
Run Code Online (Sandbox Code Playgroud)

完成后,当您运行“rabbitmqctl start_app”时,它应该可以工作了,祝您好运。

请注意,如果您有多个用户,请将其放入正确的用户文件夹中


nth*_*ack 3

我已使用默认安装文件夹在计算机中重新安装了 RabbitMQ

然后用命令检查:

rabbitmqctl status

现在它可以工作了,不是 Erlang VM 的问题。(意味着 Er 可以安装在另一个文件夹中)

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

如果有人发现了,我希望你能告诉我原因以及如何解决。