programing

RabbitMQ에 Nodedown 오류가 있습니다.

nasanasas 2020. 12. 6. 21:37
반응형

RabbitMQ에 Nodedown 오류가 있습니다.


Windows 7 Enterprise 컴퓨터에서 Erlang 17.4 및 RabbitMQ 3.4.3 x64를 새로 설치했습니다. 설치는 성공적이었고 아무런 문제가 없었습니다.

아직 첫 번째 대기열 또는 교환을 만들려고하지 않았지만 이미 문제가 있습니다. 이 문제는 다른 SO 게시물 과 유사 하지만 다른 게시물에는 클러스터링이 포함되어있는 것으로 보입니다. 또한 다른 포스터는 RabbitMQ 서비스를 다시 시작하여 문제를 피할 수 있습니다. 그 접근 방식은 저에게 효과가 없습니다.

내 "nodedown"문제는 RabbitMQ 명령 프롬프트에서 분명합니다.

C : \ Program Files (x86) \ RabbitMQ Server \ rabbitmq_server-3.4.3 \ sbin> rabbitmqctl status 노드의 상태 rabbit @ TPAJ05421843 ...
오류 : 노드 rabbit @ TPAJ05421843에 연결할 수 없음 : nodedown

진단

연락 시도 : [rabbit @ TPAJ05421843]

rabbit @ TPAJ05421843 :
* TPAJ05421843의 epmd (포트 4369)에 연결됨
* epmd 보고서 : TPAJ05421843의
다른 모든 노드 에서 '토끼'노드가 실행되지 않음 : [ 'RabbitMQ']
* 제안 : 노드 시작

현재 노드 세부 정보 :
-노드 이름 : 'rabbitmqctl-19884 @ TPAJ05421843'-
홈 디렉토리 : H : \
-쿠키 해시 : PD4QQCYrf0TME9vIko3Xuw ==

위의 내용을 바탕으로 명시 적으로 'RabbitMQ'라는 노드의 상태를 확인하기로했습니다. 나는 이것을 얻는다 :

C : \ Program Files (x86) \ RabbitMQ Server \ rabbitmq_server-3.4.3 \ sbin> rabbitmqctl -n RabbitMQ status
Status of node 'RabbitMQ @ TPAJ05421843'...
오류 : 'RabbitMQ @ TPAJ05421843'노드에 연결할 수 없음 : nodedown

진단

연락 시도 : [ 'RabbitMQ @ TPAJ05421843']

RabbitMQ @ TPAJ05421843 :
* TPAJ05421843의 epmd (포트 4369)에 연결됨
* epmd는 포트 59301에서 실행중인 'RabbitMQ'노드를보고합니다.
* TCP 연결은 성공했지만 Erlang 배포에 실패했습니다.
* 제안 : 호스트 이름 불일치?
* 제안 : 쿠키가 올바르게 설정되어 있습니까?

현재 노드 세부 정보 :
-노드 이름 : 'rabbitmqctl-23076 @ TPAJ05421843'-
홈 디렉토리 : H : \
-쿠키 해시 : PD4QQCYrf0TME9vIko3Xuw ==

좋아, 이것은 적어도 포트 59301에서 실행되는 'RabbitMQ'를 인정하기 때문에 거의 나아지지 않는다. 그러나 도대체 "Erlang 배포가 실패했다"는 것을 의미 할 수 있는가?

이 주제를 조사하려고 할 때 "쿠키와 일치하는지 확인하십시오"라는 기사를 발견했습니다. 나는 RabbitMQ 클러스터를 만들지 않았기 때문에 "쿠키 불일치"가 나와 관련이 없다고 주장하는 이 기사를 찾았 습니다.

어떻게해야합니까?


나는 오늘도 같은 문제가 있었다. 쿠키 또는 방화벽 문제가 없었으며 Windows에서 서비스가 성공적으로 실행되었다고보고했습니다. 이것이 마침내 수정 된 것입니다.

  1. RabbitMQ sbin 명령 프롬프트를 관리자로 실행하십시오.
  2. "rabbitmq-service remove"실행
  3. "rabbitmq-service install"실행

어떤 이유로 설치 프로그램에서 설정 한 서비스가 여러 레지스트리 항목을 구성하지 않았습니다. 이 설정을 올바르게 실행하면 서비스가 실행됩니다.

한 가지 눈에 띄는 것은이 작업을 수행하기 전에 Windows 서비스보기에 서비스에 대한 설명이 없다는 것입니다. rabbitmq-service 명령으로 설치 한 후 설명이 표시되었습니다. 동일한 문제가있는 경우 이것은 빠른 표시 기일 수 있습니다.


@eddyP가 언급했듯이 두 개의 다른 Erlang 쿠키 파일이 있습니다.

  • 에있는 서버 쿠키 파일 $env:WINDIR\system32\config\systemprofile\.erlang.cookie(Erlang 20.2 이전에는에있었습니다 $env:WINDIR\.erlang.cookie).
  • 에있는 클라이언트 쿠키 파일 $env:USERPROFILE\.erlang.cookie.

두 파일이 동일하도록 서버 쿠키 파일을 클라이언트에 복사하면 문제가 해결되었습니다.

자세한 내용은 "노드 (및 CLI 도구)가 서로를 인증하는 방법 : Erlang 쿠키"를 참조하십시오 .


RabbitMQ 명령 프롬프트 sbin (관리자 권한으로 실행)에서 다음 명령을 실행합니다.

rabbitmq-server restart 

Windown에서 어떤 이유로 c:\Users\xxx\AppData\Roaming\RabbitMQ\db\( xxx은 사용자 이름)의 모든 폴더를 삭제 한 다음 @Jerdev 응답을 보내고

  • rabbitmq 시작 net start rabbitmq

  • rabbitmq 서비스 확인 rabbitmqctl status


RabbitMQ 메일 링리스트의 동일한 질문 : https://groups.google.com/forum/#!topic/rabbitmq-users/0s1ExFhl4hM .

Erlang 쿠키는 rabbitmqctl서버 노드와 마찬가지로 사용 되므로 처리해야 할 수도 있습니다 (올바른 위치에 배치). Windows 단점 에 대한 "비 관리자 사용자로 설치하면 .erlang.cookie가 잘못된 위치에 남습니다"를 참조 하십시오 .


Windows 10에서이 문제를 해결합니다.

  1. RabbitMQ 명령 프롬프트 (sbin dir)를 관리자로 실행합니다.
  2. (RabbitMQ 명령 프롬프트)에서 "rabbitmq-service remove"를 실행합니다.
  3. Execute %AppData% in Run Dialog Box of Windows.
  4. Delete all files in RabbitMQ folder.
  5. Execute "rabbitmq-service install" in (RabbitMQ Command Prompt).
  6. Execute "rabbitmqctl start_app" in (RabbitMQ Command Prompt).

If you come here looking for a linux answer for the same error message, try

sudo service rabbitmq-server start

(which is not a blocking command)


Just do the following:

  1. Uninstall rabbitmq and erlang.
  2. delete the rabbitmq folder existing in your appdata (if you dont know the appdata location, just type echo %AppData% in the command prompt)
  3. Then install erlang first and then rabbitmq.
  4. After installing, enable the management plugin using below command:

    rabbitmq-plugins enable rabbitmq_management


For me the cookies didnt match, like the other comments but the locations was in a different path for those having the same issue as me C:\Windows\System32\config\systemprofile


This is how I resolved the error in my Windows 8 system:

Check for a syntax error in the rabbitmq.config file placed in the AppData folder for Windows.

How to check if there is any syntax error?

You can run rabbitmq-server restart from sbin folder in:
Program Files/RabbitMQ/rabbitmq_server_x.x/sbin/.

Replace the content of the rabbitmq.config with rabbitmq.config.example.

You may find the rabbitmq.config.example in:

Program Files/RabbitMQ/rabbitmq_server_x.x/etc/

Warning, you will lose the configuration you have saved previously with rabbitmq.

After changing the files, just hit

rabbitmq-server restart

in the sbin folder mentioned above.


That is happening because rabbit MQ is not being installed correctly on Windows (and this error is misleading!). So to solve it do the following:

  1. type "cmd" in Cortana search or in "Run" for older version of Windows
  2. right click on in and choose "Run as Administrator"
  3. go to rabbit's sbin folder (cd "C:\Program Files\RabbitMQ Server\rabbitmq_server-3.7.4\sbin")
  4. run: rabbitmq-service remove
  5. run: rabbitmq-service install

now you can run 6. rabbitmq-plugins enable rabbitmq_management 7. rabbitmq-service start 8. and, finally, run: start http://localhost:15672 9. log on as user "guest" with password: "guest" and that's it. Happy Rabbiting!


I missed restarting my WINDOWS OS and then deleting the old version of ERLANG (which I uninstalled before restarting).

Somehow the fresh installation of Rabbit was referring to the old (un-installed version) and all the mismatch was happening. Clue was the 'services' referred Rabbit from the old ERLANG version.

참고URL : https://stackoverflow.com/questions/28258392/rabbitmq-has-nodedown-error

반응형