RabbitMQ有Nodedown错误

Bre*_*ias 60 windows erlang rabbitmq

在Windows 7企业版机器上,我重新安装了Erlang 17.4和RabbitMQ 3.4.3 x64.安装成功且平安无事.

我还没有尝试创建我的第一个队列或交换,但我已经看到了麻烦.这个问题类似于另一个SO帖子,但其他帖子似乎涉及群集,我没有.此外,其他海报可以通过重新启动RabbitMQ服务来规避他的问题; 这种方法对我不起作用.

我的"nodedown"问题在RabbitMQ命令提示符下很明显:

C:\ Program Files(x86)\ RabbitMQ Server\rabbitmq_server-3.4.3\sbin> rabbitmqctl status节点兔子的状态@ TPAJ05421843 ...
错误:无法连接到节点兔子@ TPAJ05421843:nodedown

诊断

试图联系:[rabbit @ TPAJ05421843]

rabbit @ TPAJ05421843:
*连接到TPAJ05421843上的epmd(端口4369)
*epmd报告:节点'rabbit'未
在TPAJ05421843 上的所有其他节点上运行:['RabbitMQ']
*建议:启动节点

当前节点详细信息:
- 节点名称:'rabbitmqctl-19884 @ TPAJ05421843'
- 主目录:H:\
- cookie哈希:PD4QQCYrf0TME9vIko3Xuw ==

基于以上所述,我选择检查明确命名为"RabbitMQ"的节点的状态.我明白了:

C:\ Program Files(x86)\ RabbitMQ Server\rabbitmq_server-3.4.3\sbin> rabbitmqctl -n RabbitMQ status
节点'RabbitMQ @ TPAJ05421843'的状态...
错误:无法连接到节点'RabbitMQ @ TPAJ05421843':nodedown

诊断

试图联系:['RabbitMQ @ TPAJ05421843']

RabbitMQ @ TPAJ05421843:
*连接到TPAJ05421843上的epmd(端口4369)
*epmd报告节点'RabbitMQ'在端口59301上运行
*TCP连接成功但Erlang分发失败
*建议:主机名不匹配?
*建议:cookie设置正确吗?

当前节点详细信息:
- 节点名称:'rabbitmqctl-23076 @ TPAJ05421843'
- 主目录:H:\
- cookie哈希:PD4QQCYrf0TME9vIko3Xuw ==

好吧,这几乎没有好转,因为至少它承认'RabbitMQ'在端口59301上运行.但是,这究竟是什么意思"Erlang发布失败"?

当我尝试研究这个主题时,我发现文章说"确保你有匹配的cookie".基于,我发现这篇文章声称"cookie不匹配"与我无关,因为我还没有创建(也不打算创建)RabbitMQ集群.

我该怎么办?

小智 116

我今天遇到了同样的问题.没有cookie或防火墙问题,Windows报告该服务已成功运行.这是最终修复它的原因:

  1. 以管理员身份运行RabbitMQ sbin命令提示符.
  2. 运行"rabbitmq-service remove"
  3. 运行"rabbitmq-service install"

由于某种原因,安装程序设置的服务未配置多个注册表项.运行此设置正确并允许服务运行.

我注意到的一件事是,在我这样做之前,Windows服务视图中没有对服务的描述.使用rabbitmq-service命令安装后,可以看到说明.如果您遇到同样的问题,这可能是一个快速指示器.

  • @ 244boy他的意思是以管理员身份运行命令提示符并导航到RabbitMQ\sbin文件夹.像C:\ Program Files\RabbitMQ Server\rabbitmq_server-3.6.6\sbin然后运行命令删除并重新安装服务.它对我有用.谢谢. (5认同)
  • @Jerdev你以管理员身份运行`RabbitMQ sbin命令提示符是什么意思? (4认同)
  • 对于我运行上面提到的命令,然后rabbitmq-server restart命令工作. (2认同)

sh8*_*h87 26

正如@eddyP评论的那样,我有两个不同的Erlang cookie文件:

  • 服务器 cookie文件,位于$env:WINDIR\system32\config\systemprofile\.erlang.cookie(之前二郎20.2它位于$env:WINDIR\.erlang.cookie).
  • 一个客户端的cookie文件,位于$env:USERPROFILE\.erlang.cookie.

通过客户端复制服务器cookie文件,以便两个文件都相同,为我解决了问题.

有关更多详细信息,请参阅"节点(和CLI工具)如何相互验证:Erlang Cookie".

  • 当多个安装/卸载无法帮助时,此解决方案确实有所帮助.谢谢.我从用户复制到Windows,但要确保两个文件都相同. (2认同)

And*_*ski 19

从RabbitMQ命令提示符sbin(以管理员身份运行)执行以下命令:

rabbitmq-server restart 
Run Code Online (Sandbox Code Playgroud)

  • 这个命令很有帮助.它向我展示了日志的位置,我能够找到真正的错误(erlang版本对我来说太旧了) (3认同)
  • 这是一个阻塞命令.​​.服务器重新启动正常,但命令不返回终端..不得不做ctrl + q退出停止服务器.. jerdev上面的答案工作得很好 (2认同)

ngu*_*yên 9

在Windown中,由于某些原因删除所有文件夹c:\Users\xxx\AppData\Roaming\RabbitMQ\db\(xxx是您的用户名)然后流@Jerdev回答和

  • 启动rabbitmq net start rabbitmq

  • 检查rabbitmq服务 rabbitmqctl status

  • 这个是为我做的(也是最佳答案)。谢谢 我正准备将我的笔记本电脑推出窗外。 (2认同)

Mic*_*hin 7

关于RabbitMQ邮件列表的相同问题:https://groups.google.com/forum/#!topic / rabbitmq-users/ss1/Fl1hh .

Erlang cookie rabbitmqctl以及服务器节点都使用它,因此可能需要处理(放置在正确的位置).在Windows怪癖上看到"以非管理员用户身份安装将.erlang.cookie留在错误的位置" .


cca*_*sob 5

我解决了在 Windows 10 中执行此操作的问题。

  1. 以管理员身份执行 RabbitMQ 命令提示符(sbin dir)。
  2. 在(RabbitMQ 命令提示符)中执行“rabbitmq-service remove”。
  3. 在 Windows 的运行对话框中执行 %AppData%。
  4. 删除RabbitMQ文件夹中的所有文件。
  5. 在(RabbitMQ 命令提示符)中执行“rabbitmq-service install”。
  6. 在(RabbitMQ 命令提示符)中执行“rabbitmqctl start_app”。