2017-11-01 2 views
0

Ich habe eine 3 Knoten Rabbit MQ-Setup. Alle Warteschlangen werden zur Laufzeit erstellt.Wie Spring AMQP immer die Verbindung zu Master Queue Knoten in Kaninchen MQ Cluster

Wenn i spiegeln nicht die Warteschlangen dann eine bestimmte Warteschlange auf suppose Node1 erstellt werden und wird in Node2 und Node3

jetzt nicht anwesend sein, wenn ich den Frühling AMQP-Client verwenden, wie dann, wie wird es die sicherstellen die queue1, die auf Knoten 1 zur Verfügung steht, Es wird immer 1 eine Verbindung zum Knoten der queue1

rabbit:connection-factory id="connectionFactory" addresses="host1, host2, host3" username="username" password="password" 

die andere Möglichkeit für den Zugriff ist ha-Modus alle zu verwenden, in denen jede Warteschlange, wenn auf jedem Knoten erstellt werden, um das bekommen zu replizieren Rest der Knoten auch. Dies stellt sicher, dass die HA und die 100% ige Garantie der Nachricht konsumiert werden, unabhängig davon, ob der Client eine Verbindung zu einem der Knoten herstellt. aber es ist ein keine erwünschte ODER gute Lösung

ich für die Lösung suchen, wenn keine HA-Politik, wenn definiert ist.

Antwort

0

Siehe the documentation about Queue Affinity and the LocalizedQueueConnectionFactory.

Während es für HA-Warteschlangen konzipiert wurde, funktioniert es für jede Warteschlange und stellt eine Verbindung zu dem Knoten her, der die Warteschlange hostet (falls verfügbar).

Es erfordert das Management-Plugin; Es ermittelt anhand der REST-API, welcher Knoten eine Warteschlange hostet.

Wenn die Warteschlange dauerhaft ist und der Hostknoten inaktiv ist, setzen Sie missingQueuesFatal auf false, damit der Listener-Container weiterhin versucht. Fehlende Warteschlangen werden standardmäßig als fatal behandelt und der Container wird beendet.

Verwandte Themen