Ich habe mehrere RabbitMQ-Knoten auf verschiedenen Rechnern. Nach der Installation jedes Knotens konnte ich kein gemeinsames Cookie für jeden von ihnen angeben, also musste ich zurückgehen und die Datei .erlang.cookie manuell ändern. Mein Problem ist, dass ich nach diesem Vorgang widersprüchliche Fehlermeldungen erhalte. Wenn ich rabbitmqctl status mache Ich erhalte den folgenden Fehler:
DIAGNOSE
versucht zu kontaktieren: ['rabbit @ nc-mso-test01']
rabbit @ nc-mso-test01: * verbunden mit epmd (Port 4369) an nc-mso-test01 * epmd meldet Knoten 'Hase', der auf Port 25672 läuft * TCP-Verbindung erfolgreich, aber Erlang-Verteilung fehlgeschlagen
- Authentifizierung fehlgeschlagen (vom Remote-Knoten abgelehnt), bitte überprüfen der Erlang-Cookie
aktuelle Knotendetails: - Knotenname: 'rabbitmq-cli-45 @ nc-mso-test01' - home dir: C: \ Benutzer \ jol - Cookie-Hash: 9 / Hx6l + wLQv3NkmSDFqBog ==
Welches Skript ich auch rufe, ich bekomme den gleichen Fehler. Ich habe versucht, den Dienst neu zu starten, ihn durch rabbitmq-service zu entfernen und zu installieren. Der Fehler bleibt bestehen. Was ich aus anderen Beiträgen entnehme, könnte der Grund dafür sein, dass der Knoten und der Erlang-Broker auf separaten Benutzern laufen und jeder von ihnen eine andere Version des Cookies hat, einer ist mit dem alten festgefahren.
Wie kann ich den Server und den Knoten neu starten, so dass beide die neue Cookie-Datei verwenden?
Ich habe mein Problem gelöst. Ich habe die Tatsache übersehen, dass das RabbitMQ-Setup zwei Cookie-Dateien enthält, eine in c: \ Windows für die erlang-Komponente und eine in C: \ Users \% USER%. Soweit ich das verstehe, wenn die erlan VM auf ihrem eigenen Anwendungsbenutzer gestartet wird und der RabbitMQ-Knoten auf einem anderen Benutzer gestartet wird, was mein Fall gewesen wäre, dann waren die beiden Cookie-Dateien unterschiedlich und ich musste diese vor der Synchronisierung synchronisieren die Cluster-Cookies.
Dokumentation sagt:
Die vom Windows-Dienstkonto verwendete Cookie-Datei und der Benutzer, der die CLI-Tools ausführt, müssen synchronisiert werden. RabbitMQ-Clustering Guide
Bei Erlang-Versionen, die mit 20.2 beginnen, sind die folgenden Speicherorte der Cookies:
C:\Users\%USERNAME%\.erlang.cookie
für Benutzer %USERNAME%
%USERPROFILE%\.erlang.cookie
(normalerweise C:\WINDOWS\system32\config\systemprofile
) Bei Erlang-Versionen vor 20.2 (z. B. 19.3 oder 20.1) sind die Speicherorte der Cookies wie folgt:
C:\Users\%USERNAME%\.erlang.cookie
für Benutzer %USERNAME%
%WINDIR%\.erlang.cookie
(normalerweise C:\Windows\.erlang.cookie
)