RabbitMQ有Nodedown错误

在Windows 7企业机器上,我重新安装了Erlang 17.4和RabbitMQ 3.4.3 x64。 安装成功,顺利。

我还没有尝试创build我的第一个队列或交换,但我已经看到麻烦。 这个问题类似于另一个SOpost ,但是其他post似乎涉及到群集,这是我没有的。 而且,另一张海报可以通过重新启动RabbitMQ服务来避开他的问题; 这种方法不适合我。

我的“nodedown”问题在RabbitMQ命令提示符下显而易见:

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

诊断

试图联系:[兔子@ TPAJ05421843]

兔@ TPAJ05421843:
*连接到TPAJ05421843上的epmd(端口4369)
* epmd报告:节点“兔子”根本没有运行
TPAJ05421843上的其他节点:['RabbitMQ']
*build议:启动节点

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

基于上述,我select了检查显式名为“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报告在端口59301上运行的节点“RabbitMQ”
* TCP连接成功,但Erlang分发失败
*build议:主机名不匹配?
*build议:cookie设置是否正确?

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

好吧,至less它承认运行在59301端口上的“RabbitMQ”,这样稍微好一点。但是,这意味着“Erlang分发失败”是什么意思呢?

当我试图研究这个话题时,我发现有文章说“确定你有匹配的cookies”。 基于此 ,我发现这篇文章声称“cookie不匹配”与我无关,因为我没有创build(也不打算创build)RabbitMQ集群。

我该怎么办?

今天我也有同样的问题。 没有cookie或防火墙问题,Windows报告说服务运行成功。 这是最终解决的问题:

  1. 以pipe理员身份运行RabbitMQ sbin命令提示符。
  2. 运行“rabbitmq-service remove”
  3. 运行“rabbitmq-service install”

出于某种原因,安装程序设置的服务没有configuration多个registry项。 运行这个设置正确,并允许服务运行。

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

正如@eddyP所评论的,我有两个不同的cookie。 一个在C:\Windows\.erlang.cookie ,另一个在C:\Users\my_user_name\.erlang.cookie 。 把前者复制到后者,这样两个文件都是一样的,为我解决了这个问题。

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

 rabbitmq-server restart 

RabbitMQ邮件列表中的相同问题: https ://groups.google.com/forum/#! topic/ rabbitmq-users/0s1ExFhl4hM。

rabbitmqctl和服务器节点都使用Erlang cookie,因此可能需要照顾(放置在正确的位置)。 请参阅Windows怪癖中的 “以非pipe理员用户身份安装.erlang.cookie在错误的位置”。

在Windown,出于某种原因删除所有文件夹在c:\Users\xxx\AppData\Roaming\RabbitMQ\db\xxx是您的用户名),然后stream@Jerdev答案和

  • 启动rabbitmq net start rabbitmq

  • 检查rabbitmq服务rabbitmqctl status

如果你来这里寻找相同的错误信息的Linux答案,请尝试

 sudo service rabbitmq-server start 

(这不是一个阻塞命令)

我在Windows 10中解决了我的问题。

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

只要做到以下几点:

  1. 卸载rabbitmq和erlang。
  2. 删除你appdata中的rabbitmq文件夹(如果你不知道appdata的位置,只需在命令提示符下键入echo%AppData%
  3. 然后先安装erlang,然后安装rabbitmq。
  4. 安装完成后,使用以下命令启用pipe理插件:

    rabbitmq-plugins启用rabbitmq_management

这是我解决我的Windows 8系统中的错误:

检查放置在Windows的AppData文件夹中的rabbitmq.config文件中的语法错误。

如何检查是否有语法错误?

您可以从以下位置的sbin文件夹运行rabbitmq-server restart
Program Files/RabbitMQ/rabbitmq_server_x.x/sbin/

rabbitmq.configreplacerabbitmq.config的内容。

您可以在以下位置findrabbitmq.config.example:

 Program Files/RabbitMQ/rabbitmq_server_x.x/etc/ 

警告,您将失去以前用rabbitmq保存的configuration。

更改文件后,点击

rabbitmq-server重新启动

在上面提到的sbin文件夹中。