我正在尝试在 Windows 服务器上设置 RabbitMQ 集群,这需要使用共享的 Erlang cookie 文件。根据文档,我需要做的就是确保不同机器上的根目录包含相同的 .erlang.cookie 文件。所以我所做的就是在两台机器上找到这些文件并用相同的共享版本覆盖它们。
之后,所有rabbitmqctl命令在具有新文件版本的计算机上失败,并显示“无法连接到节点...”错误消息。我尝试重新启动RabbitMQ Windows服务,但rabbitmqctl仍然抱怨。我什至在那台机器上重新安装了 RabbitMQ,但随后 .erlang.cookie 被重置回旧版本。每当我尝试使用新版本的 cookie 文件时,rabbitmqctl 都会失败。当我恢复旧版本时,它工作得很好。
基本上,我陷入困境,在解决此问题之前无法继续进行集群设置。任何帮助表示赞赏。
更新:收到 RabbitMQ 的答复:
“rabbitmqctl 将从用户主目录中获取 cookie,而服务将从 C:\windows 中获取 cookie。因此,您需要将它们相互同步,以及与其他计算机同步。”
这基本上意味着 cookie 文件需要在两个位置进行替换:C:\Windows 和 current_user。
以上你说的都是对的。该服务将在以下位置使用 cookieC:\Windows
当你使用rabbitmqctl.bat
使用用户目录中的 cookie 查询其状态(%USERPROFILE%
).
当 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==
Windows 上的 RabbitMQ cookie 还有一个问题...如果您有%HOMEDIR%
and %HOMEPATH%
环境变量(就像我们在当前测试环境中所做的那样,并将上面的 homedir 设置为U:\
),然后 RabbitMQ 将在那里获取 cookie,如果没有,它会制作一个并将其写入那里。这让我在尝试让它工作时花了很长一段时间把头撞在桌子上。一旦我发现这个问题,很明显 cookie 文件就是问题所在(如文档所述),它们只是位于一个奇怪的位置(据我所知没有文档记录)。
希望这能解决某人在 Windows 上设置 RabbitMQ 集群的痛苦。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)