2016-03-31 9 views
0

Ich richtete Labor über ha für rabbitmq mit Cluster-und Spiegel-Warteschlange. Ich benutze centos 7 und rabbitmq-server 3.3.5. mit drei Servern (ha1, ha2, ha3).HA RabbitMQ ohne set mirror Politik

Ich habe gerade Ha1 und Ha2 Ha3 beigetreten, aber nicht für die Spiegel-Warteschlange. Wenn ich create queue mit dem Namen "hallo" auf ha1 server teste, nachdem ich ha2 und ha3 mit der rabbitmqctl-Liste queue überprüft habe, ist die hallo-Warteschlange auf allen Knoten im Cluster vorhanden.

Ich habe eine Frage, warum ich nicht auf Spiegel-Warteschlange auf Cluster Politik festlegen, aber es automatische Spiegel-Warteschlange wurden auf jedem Knoten im Cluster erstellt?

Bitte geben Sie mir Ratschläge über Ich habe einen Fehler oder nur Beitritt Knoten auf Cluster, Warteschlange wird Spiegel auf allen Knoten des Clusters sein. Danke

Antwort

0

In rabbitmq ist eine Warteschlange standardmäßig nur auf einen Knoten gespeichert. Wenn Sie einen Cluster erstellen, ist die Warteschlange über Knoten hinweg verfügbar.

Aber es bedeutet nicht, dass die Warteschlange gespiegelt wird, wenn der Knoten aussteigt, wird die Warteschlange als inaktiv markiert und Sie können nicht darauf zugreifen.

Angenommen, eine Warteschlange an den Knoten zu erstellen, funktioniert die Warteschlange, bis der Knoten nach oben ist, wie:

enter image description here

, wenn der Knoten nach unten, die Sie haben werden:

enter image description here

sollten Sie immer die Spiegelrichtlinie anwenden, sonst könnten Sie die Nachrichten verlieren

+0

Ja, danke pro. Ich vergesse den Test, wenn der Master-Cluster die Warteschlange erstellt hat. Die Warteschlange wird auf allen Clustern gelöscht, wenn der Master-Queue-Cluster –

+0

nicht erreichbar war. Ich empfehle Ihnen, auf die Version '3.6.1' zu aktualisieren, wenn Sie eine alte Version verwenden. Wenn Sie die Antwort für richtig halten, akzeptieren Sie bitte. @ SơnLâm – Gabriele