2017-06-16 4 views
1

Ich habe einen RabbitMQ-Cluster (ohne HA) Setup mit den Knoten in mehreren Instanzen. Aus der Dokumentation verstehe ich im Cluster-Modus, dass die Warteschlangen nicht gespiegelt sind und dem Knoten gehört, für den sie deklariert wurde.RabbitMQ Clustering Knoten Fehler

So, jetzt ist die Frage, was passiert, wenn der Knoten, der die Warteschlange besitzt, ausfällt? Korrigiere mich, wenn ich falsch liege, da die Warteschlangen nicht gespiegelt werden, werden die Client-Anwendungen auf fehlende Warteschlangen stoßen.

Sollten wir unsere Logik schreiben, um herauszufinden, ob der Knoten ausfällt, müssen die Warteschlangen neu deklariert werden und in diesem Fall, was passiert mit den Nachrichten?

+0

geworfen werden, wenn der Knoten der Warteschlange tot besitzen, um die Warteschlange tot, könnte die Nachricht dead.You Existenz überprüfen und dann entscheiden, zu deklarieren oder nicht. –

Antwort

1

So, jetzt ist die Frage, was passiert, wenn der Knoten, der die Warteschlange besitzt, ausfällt?

Vom docs:

Wenn RabbitMQ beendet oder stürzt wird es die Warteschlangen und Nachrichten vergessen, wenn Sie es sagen, nicht zu tun. Zwei Dinge sind erforderlich, um sicherzustellen, dass Nachrichten nicht verloren gehen: Wir müssen sowohl die Warteschlange als auch die Nachrichten als dauerhaft kennzeichnen.

nächste Frage:

Sollten wir unsere Logik schreiben, um herauszufinden, ob der Knoten ausfällt, die Warteschlangen werden müssen, wieder erklärt und in diesem Fall, was mit den Nachrichten geschehen?

Ja, es ist eine gute Idee, Ihre Warteschlangen neu zu deklarieren.

Wenn Ihr Knoten ausfällt, werden alle angeschlossenen Verbraucher getrennt. Jedes Mal, wenn ein Benutzer eine Verbindung herstellt, sollte er davon ausgehen, dass seine Warteschlange nicht existiert. Daher muss er als erste Anforderung eine Anfrage senden, wenn er verbunden ist.

Wenn Verbraucher senden declare queue Anfrage und Warteschlange does exist dann:

  • declare queue nicht Warteschlange Nachrichten in irgendeiner Weise beeinflussen. Wenn Nachrichten beibehalten wurden, befinden sie sich weiterhin in der Warteschlange .

  • Unter normalen Umständen (wenn Sie nicht über die Eigenschaften der Warteschlange ändern) werden keine Fehler

Verwandte Themen