2012-04-12 4 views
3

Windows 서버에 RabbitMQ 클러스터를 설정하려고하는데 공유 Erlang 쿠키 파일을 사용해야합니다. 문서에 따르면 다른 컴퓨터의 루트 디렉토리에 동일한 .erlang.cookie 파일이 포함되도록해야합니다. 그래서 내가 한 일은 두 컴퓨터에서이 파일들을 찾아서 같은 공유 버전으로 덮어 씁니다.Windows 서버에서 RabbitMQ 클러스터 설정

그 다음 모든 rabbitmqctl 명령이 "노드에 연결할 수 없음 ..."오류 메시지와 함께 새 파일 버전으로 컴퓨터에서 실패했습니다. RabbitMQ Windows 서비스를 다시 시작하려고했으나 여전히 rabbitmqctl이 (가) 불평했습니다. 그 머신에 RabbitMQ를 재설치하기도했지만 .erlang.cookie는 이전 버전으로 다시 설정되었습니다. 새 버전의 쿠키 파일을 사용하려고 할 때마다 rabbitmqctl이 실패했습니다. 이전 버전을 복원하면 정상적으로 작동합니다.

기본적으로 나는이 문제를 해결할 때까지 멈추고 클러스터 설정을 진행할 수 없습니다. 어떤 도움을 주셔서 감사합니다.

업데이트 : RabbitMQ에서 응답받은 : "서비스가 C : \ windows에서 가져 오는 동안 rabbitmqctl이 사용자 홈 디렉토리에서 쿠키를 선택합니다. 따라서 서로를 동기화해야합니다. 다른 기계와 마찬가지로. "

기본적으로 이는 쿠키 파일을 C : \ Windows 및 current_user의 두 위치로 리핑해야 함을 의미합니다.

답변

3

상기 내용이 정확합니다. 서비스는 C:\Windows에서 쿠키를 사용하고 rabbitmqctl.bat을 사용하여 사용자 디렉토리의 쿠키 (%USERPROFILE%)를 사용중인 상태를 쿼리합니다.

쿠키는 우리가 할대로 (A %HOMEDIR%%HOMEPATH% 환경 변수가있는 경우

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을 U:\으로 설정하면 RabbitMQ가 쿠키를 가져오고, 쿠키가 없으면 RabbitMQ가 쿠키를 생성하여 거기에 씁니다. 이 일을 얻으려고 할 때 꽤 오랫동안 내 책상 위에 내 머리를 두드려주었습니다. 이 잡기를 발견하면 쿠키 파일이 문제 였고 (문서화 된 것처럼) 그들은 단지 이상한 위치에있었습니다 (AFAIK에 문서화되어 있지 않음).

희망 사항은 Windows에서 RabbitMQ 클러스터링을 설정하는 누군가의 고통을 해결합니다.

관련 문제