在Windows服务器上设置RabbitMQ集群

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

之后,所有rabbitmqctl命令在新文件版本的机器上失败,并显示“无法连接到节点…”错误消息。 我试图重新启动RabbitMQ Windows服务,但仍rabbitmqctl抱怨。 我甚至在那台机器上重新安装了RabbitMQ,但是.erlang.cookie被重新设置为旧版本。 每当我尝试使用新版本的cookie文件,rabbitmqctl失败。 当我恢复旧版本时,它工作正常。

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

更新:从RabbitMQ接收到一个答案:“rabbitmqctl将从用户主目录中获取cookie,而服务将从C:\ windows中获取,因此您需要将这些文件与其他文件同步机。”

这基本上意味着cookie文件需要在两个地方重新修复:C:\ Windows和current_user。

Solutions Collecting From Web of "在Windows服务器上设置RabbitMQ集群"

你有上面的正确。 该服务将使用C:\Windows的cookie,当您使用rabbitmqctl.bat查询其使用用户目录( %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 cookies,还有一个问题…如果你有一个%HOMEDIR%%HOMEPATH%环境变量(就像我们在当前的测试环境中做的那样,并且将homedir设置为U:\ ),那么RabbitMQ将会得到在那里的cookie,如果没有一个,它会让它在那里写。 这让我把自己的头撞到了桌子上了很长一段时间。 一旦我发现这个问题,显然cookie文件是问题(如文件记录),他们只是在一个奇怪的位置(没有记录AFAIK)。

希望这解决了在Windows上设置RabbitMQ Clustering的一些痛苦。