2012-04-12 38 views
3

我想在Windows服務器上設置RabbitMQ集羣,這需要使用共享的Erlang Cookie文件。根據文檔,我所需要做的就是確保不同機器上的根目錄包含相同的.erlang.cookie文件。所以我所做的是在兩臺機器上找到這些文件,並用相同的共享版本覆蓋它們。在Windows服務器上設置RabbitMQ集羣

之後,所有rabbitmqctl命令在具有「無法連接到節點...」錯誤消息的新文件版本的計算機上失敗。我試圖重新啓動RabbitMQ Windows服務,但仍然抱怨rabbitmqctl。我甚至在該機器上重新安裝了RabbitMQ,但隨後.erlang.cookie被重新設置爲舊版本。每當我嘗試使用新版本的cookie文件時,rabbitmqctl都會失敗。當我恢復舊版本時,它工作正常。

基本上我卡住了,無法繼續進行羣集設置,直到我解決了此問題。任何幫助表示讚賞。

更新:從RabbitMQ收到答案: 「rabbitmqctl將從用戶主目錄中選取cookie,而服務將從C:\ windows中選取它,因此您需要將它們相互同步,如和其他機器一樣。「

這基本上意味着cookie文件需要在兩個地方重新修復:C:\ Windows和current_user。

回答

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 '[email protected]' ... 
Error: unable to connect to node '[email protected]': nodedown 

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

nodes in question: ['[email protected]'] 

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

current node details: 
- node name: '[email protected]' 
- home dir: U:\ 
- cookie hash: Vp52cEvPP1PukagWi5S/fQ== 

有Windows上的RabbitMQ餅乾多了一個疑難雜症......如果你有一個%HOMEDIR%%HOMEPATH%環境變量(如我們在做我們的當前的測試環境,並將homedir設置爲U:\),那麼RabbitMQ將在那裏獲取cookie,如果沒有,它將創建一個並寫入其中。這讓我在試圖完成這項工作時將我的頭撞在桌上很久。一旦我發現這個問題,顯然cookie文件是問題(如文件記錄),他們只是在一個奇怪的位置(沒有記錄AFAIK)。

希望這可以解決在Windows上設置RabbitMQ Clustering的痛苦。