在Windows服务器上设置RabbitMQ群集

时间:2012-04-12 10:21:48

标签: windows erlang rabbitmq cluster-computing

我正在尝试在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。

1 个答案:

答案 0 :(得分:3)

你有以上正确的。该服务将使用C:\Windows处的Cookie,当您使用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%%HOMEPATH%个环境变量(就像我们在当前测试环境中那样,并将homedir设置为{{{ 1}}),然后RabbitMQ将在那里获取cookie,如果没有,它会将其写入并在那里写入。当我试图让这个工作时,这让我在我的桌子上敲了很长时间。一旦我发现这个问题很明显,cookie文件就是问题(如文件所示),它们只是在一个奇怪的位置(没有记录的AFAIK)。

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