3

我正在尝试在 Windows 服务器上设置 RabbitMQ 集群,这需要使用共享的 Erlang cookie 文件。根据文档,我需要做的就是确保不同机器上的根目录包含相同的 .erlang.cookie 文件。所以我所做的是在两台机器上找到这些文件并用相同的共享版本覆盖它们。

之后,所有 rabbitmqctl 命令在新文件版本的机器上都失败,并显示“无法连接到节点...”错误消息。我试图重新启动 RabbitMQ Windows 服务,但还是 rabbitmqctl 抱怨。我什至在那台机器上重新安装了 RabbitMQ,但随后 .erlang.cookie 被重置回旧版本。每当我尝试使用新版本的 cookie 文件时,rabbitmqctl 都会失败。当我恢复旧版本时,它运行良好。

基本上我被卡住了,在我解决这个问题之前无法继续进行集群设置。任何帮助表示赞赏。

更新:收到 RabbitMQ 的答复:“rabbitmqctl 将从用户主目录获取 cookie,而服务将从 C:\windows 获取它。因此,您需要将它们彼此同步,以及与其他同步机器。”

这基本上意味着 cookie 文件需要在两个位置进行替换:C:\Windows 和 current_user。

4

1 回答 1

3

你有上述正确的。该服务将C:\Windows在您用于rabbitmqctl.bat查询状态时使用 cookie,它正在使用您的用户目录 ( %USERPROFILE%) 中的 cookie。

当 cookie 不匹配时,错误看起来像

C:\Program Files (x86)\RabbitMQ Server\rabbitmq_server-2.8.2\sbin>rabbitmqctl.bat status
Status of node 'rabbit@PC-FOOBAR' ...
Error: unable to connect to node 'rabbit@PC-FOOBAR': nodedown

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

nodes in question: ['rabbit@PC-FOOBAR']

hosts, their running nodes and ports:
- PC-FOOBAR: [{rabbit,49186},{rabbitmqctl30566,63150}]

current node details:
- node name: 'rabbitmqctl30566@pc-foobar'
- home dir: U:\
- cookie hash: Vp52cEvPP1PukagWi5S/fQ==

%HOMEDIR%在 Windows 上,%HOMEPATH%RabbitMQ U:\cookie还有一个问题...一个它组成一个并写在那里。这让我在试图让它工作时把头撞在桌子上很长一段时间。一旦我发现了这个问题,很明显 cookie 文件就是问题所在(如记录所示),它们只是在一个奇怪的位置(未记录在 AFAIK 中)。

希望这能解决一些人在 Windows 上设置 RabbitMQ 集群的痛苦。

于 2012-06-25T23:27:38.990 回答