2016-11-10 61 views
7

Mam wiele węzłów RabbitMQ działających na różnych komputerach. Po zainstalowaniu każdego węzła nie udało mi się określić wspólnego pliku cookie dla każdego z nich, więc musiałem wrócić i ręcznie zmienić plik .erlang.cookie. Mój problem polega na tym, że po wykonaniu tego otrzymuję sprzeczne komunikaty o błędach. Jeśli zrobię statusu rabbitmqctl pojawia się następujący błąd:Autoryzacja węzła RabbitMQ nie powiodła się po zmianie pliku cookie

DIAGNOSTICS

attempted to contact: ['[email protected]']

[email protected]: * connected to epmd (port 4369) on nc-mso-test01 * epmd reports node 'rabbit' running on port 25672 * TCP connection succeeded but Erlang distribution failed

  • Authentication failed (rejected by the remote node), please check the Erlang cookie

current node details: - node name: '[email protected]' - home dir: C:\Users\jol - cookie hash: 9/Hx6l+wLQv3NkmSDFqBog==

Cokolwiek skrypt zadzwonię, mam ten sam błąd. Próbowałem ponownie uruchomić usługę, usuwając i instalując ją za pomocą usługi rabbitmq. Błąd nadal występuje. Z tego, co mogę zebrać z innych postów, może wynikać, że węzeł i broker erlang działają na różnych użytkownikach, a każdy z nich ma inną wersję pliku cookie, jeden utknął w starym.

Jak mogę zresetować serwer i węzeł, aby oba z nich korzystały z nowego pliku cookie?

Odpowiedz

16

Rozwiązałem mój problem. Brakowało mi faktu, że konfiguracja RabbitMQ ma dwa pliki cookie, jeden w c: \ Windows dla składnika erlang i jeden w C: \ Users \% USER%. Z tego co rozumiem, jeśli erlan VM jest uruchomiony na swoim własnym użytkowniku aplikacji i węzeł RabbitMQ jest uruchamiany na innym użytkowniku, co byłoby moim przypadkiem, to dwa pliki cookie były różne i musiałem je zsynchronizować przed synchronizacją ciasteczka klastra.

+1

THX problemu rozwiązane przez zsynchronizowanie tych osób (po prostu skopiuj i wklej). –

+6

Aby wyeliminować szansę 50/50 ... Aby zsynchronizować: skopiuj plik cookie C: \ Windows, aby nadpisać plik cookie C: \ Users \% USER% – theKRAY

+1

https://www.rabbitmq.com/install-windows-manual. html, problem jest również opisany tutaj, z podaną ścieżką dla dwóch plików cookie. – William

4

Dokumentacja mówi:

The cookie file used by the Windows service account and the user running CLI tools must be synchronised. RabbitMQ-Clustering Guide

W wersjach Erlang wyjściowych z 20,2, lokalizacje plików cookies są:

  • dla użytkownika systemem narzędzi CLI - zazwyczaj C:\Users\%USERNAME%\.erlang.cookie dla użytkownika %USERNAME%
  • Dla RabbitMQ Usługa Windows - %USERPROFILE%\.erlang.cookie (zwykle C:\WINDOWS\system32\config\systemprofile)

W wersjach Erlang przed 20.2 (np. 19.3 lub 20.1), lokalizacje plików cookies są:

  • dla użytkownika systemem narzędzi CLI - zazwyczaj C:\Users\%USERNAME%\.erlang.cookie dla użytkownika %USERNAME%
  • za usługę RabbitMQ Windows - %WINDIR%\.erlang.cookie (zwykle C:\Windows\.erlang.cookie)