Verteilt RabbitMQ Knoten nicht gegenseitig zu erkennen

Arbeite ich an einem RabbitMQ verteilt POC und ich bin stecken in die Grundlagen der Cluster-Knoten.

Ich versuche zu Folgen, den Kaninchen tutorial auf clustering, so ist das meine Referenz.

Nach der Installation von erlang (R14B04) und Kaninchen (2.8.2-1) habe ich kopiert, die .erlang.cookie Inhalt der Datei von einem Knoten auf den anderen beiden.

Ich war mir nicht sicher, wie erlang, um zu bemerken, diese änderung musste ich neu starten die Maschinen selbst (ziemlich brute-force, aber ich weiß nicht, erlang).

Darüber hinaus eröffnete ich in iptables-4369 und 5 zusätzliche ports für die Kommunikation und unter
/usr/lib64/erlang/bin/sys.config
folgende config:

{kernel,[{inet_dist_listen_min, XX00},{inet_dist_listen_max,XX05}]}]

Dann ein weiterer Neustart (dumm ich weiß), um zu überprüfen, erlang nimmt diese berücksichtigt aber immer noch, wenn ich laufen:

rabbitmqctl cluster rabbit@HostName1

Bekomme ich:

Clustering node rabbit@HostName2 with [rabbit@HostName1] ...
Error: {no_running_cluster_nodes,[rabbit@HostName1],
                                 [rabbit@HostName1]}

Gibt es eine chance mein hantieren mit der erlang.cookie oder mit den ports nicht gelingen, aber ich weiß nicht, wie um Sie zu überprüfen. Ich habe versucht, die Eingabe erl in die cmd und dann erl_epmd:names() oder andere Befehle um weitere Informationen zu erhalten, aber ich bin wahrscheinlich Weg in erlang land.

Wäre wirklich für jede Hilfe dankbar,

Update:

Ich habe versucht, pingen zwei erlang-Knoten manuell und bekam pang zurück.

Ich habe die folgenden:

Mit zwei Knoten, hielt rabbitmq (war nicht sicher, ob benötigt, aber um sicher zu sein), begann erlang so (erl -sname dilbert und erl -sname dilbert2), wenn die erlang-Kommandozeile gestartet, lief ich node(). auf jeden von Ihnen und bekam dilbert@HostName1 und dilbert2@HostName2 beziehungsweise. Ich habe dann versucht zu laufen net_adm:ping('dilbert'). und net_adm:ping('dilbert@HostName1'). mit dem einfachen Anführungszeichen und ohne Sie aus den beiden Knoten (Namen geändert versteht sich) und habe an allen 8 Fällen pang.

Bei mir lief nodes(). auf einer der Maschinen hab ich wieder ein leeres array.

Ich habe auch versucht, damit alle traffic in der firewall (Skript) und dann versuchen, führen Sie die oben genannten Befehle (keine Sorge, Sie sind zurück auf jetzt) und immer noch zurück pang.

Update2:

Aus irgendeinem Grund hatte ich cookies Diskrepanz, die ich brauchte, um zu lösen (danke @kjw0188 für den Vorschlag [ich lief erlang:get_cookie(). in der erlang-Befehl Linie]).

Dies hat nicht geholfen und ich brauchte halt iptables komplett (nicht sicher, warum, aber ich werd es bald) und laden Sie die erlang-Knoten mit -name dilbert@my-ip weil mein rackspace-Server keine dns-Namen. Diese ermöglichten schließlich mich zu einem pong und sehen Sie sich die Knoten gegenseitig sehen (nodes(). gibt einen nicht-leeren array nach dem "ping").

Das problem ich bin nun konfrontiert ist, wie Sie Sie anweisen, RabbitMQ zu verwenden -Namen statt -sname beim starten erlang.

Haben Sie sehen, wenn Sie können beginnen, erl Knoten auf jeder Maschine, und sehen, ob Sie ping jedes andere?
Habe nicht versucht es noch (erlang-noob). Weißt du, wie ich überprüfen kann, um zu sehen, dass der aktuelle Knoten nicht ausgeführt wird? Ich denke, RabbitMQ beginnt mit einem Knoten, wenn es geladen wird, damit ich aufhören werde, aber ich möchte, um zu überprüfen, kein Knoten aktiv ist, bevor ich versuche Ihren Vorschlag. Dank
Sie sollten nicht brauchen, nehmen Sie sich Kaninchen, aber wenn Sie möchten, können Sie versuchen, den Dienst stoppen sudo /etc/init.d/rabbitmq-server stop
Immer noch kein Glück, siehe mein update oben. Dank
Tun die cookies-match? Versuchen erlang:get_cookie(). auf dilbert und dogbert oder Einstellung der cookie manuell mit der -setcookie Befehlszeile-option. Wenn Sie kann immer noch nicht pingen sich gegenseitig, wie es scheint, erlang nicht finden können, die anderen Knoten aus irgendeinem Grund. Sind die hosts erreichbar mit normalen ping? Verwenden Sie den Hostnamen für den Maschinen für den ping, nicht die IP-Adresse.

InformationsquelleAutor Ittai | 2012-06-14

Schreibe einen Kommentar