3

WindowsサーバーでRabbitMQクラスターをセットアップしようとしていますが、これには共有ErlangCookieファイルを使用する必要があります。ドキュメントによると、私がする必要があるのは、異なるマシンのルートディレクトリに同じ.erlang.cookieファイルが含まれていることを確認することだけです。だから私がしたことは、両方のマシンでこれらのファイルを見つけて、同じ共有バージョンでそれらを上書きしたことです。

その後、すべてのrabbitmqctlコマンドが新しいファイルバージョンのマシンで失敗し、「ノードに接続できません...」というエラーメッセージが表示されます。RabbitMQ Windowsサービスを再起動しようとしましたが、それでもrabbitmqctlが文句を言いました。そのマシンにRabbitMQを再インストールしましたが、.erlang.cookieが古いバージョンにリセットされました。新しいバージョンのCookieファイルを使おうとすると、rabbitmqctlが失敗しました。古いバージョンを復元すると、正常に機能しました。

基本的に私は立ち往生していて、この問題を解決するまでクラスターのセットアップを続行できません。どんな助けでも大歓迎です。

更新:RabbitMQから回答を受け取りました:「rabbitmqctlはユーザーのホームディレクトリからCookieを取得し、サービスはC:\ windowsからCookieを取得します。したがって、これらを相互に同期する必要があります。マシーン。"

これは基本的に、CookieファイルをC:\Windowsとcurrent_userの2か所で再配置する必要があることを意味します。

4

1 に答える 1

3

上記は正しいです。サービスは、ユーザー ディレクトリ ( ) 内の Cookie を使用してステータスを照会するために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 Cookie には、もう 1 つ注意点があります...%HOMEDIR%および%HOMEPATH%環境変数がある場合 (現在のテスト環境で行っているように、上記の homedir を に設定しますU:\)、RabbitMQ はそこに Cookie を取得し、存在しない場合は Cookie を取得します。 1 つを作成し、そこに書き込みます。これにより、これを機能させようとしているときに、かなり長い間机に頭をぶつけていました。この落とし穴を見つけたら、Cookie ファイルが問題であることは明らかでした (文書化されているように)。それらはちょうど奇妙な場所にありました (文書化されていません)。

これにより、Windows で RabbitMQ クラスタリングを設定する際の誰かの苦労が解決されることを願っています。

于 2012-06-25T23:27:38.990 に答える