2016-04-05 1 views
0

Ich habe eine Gruppe von Rabbitmq-Servern. Aber die Maschinen, auf denen die Server gehostet werden, weisen Unterschiede hinsichtlich der installierten Software auf. Sie haben also keine überlappenden Fähigkeiten, sie sind spezialisierte Mitarbeiter, zum Beispiel hat nur ein Knoten E-Mail-Software installiert.So senden Sie Nachrichten an spezialisierte Knoten in einem Cluster rabbitmq

Ich weiß, dass eine Warteschlange an den Knoten gebunden ist, auf dem erstellt wird. Meine Frage ist, wie ich meine Warteschlangen so einrichten kann, dass ich bestimmte Nachrichten an den speziellen dotierten Knoten senden kann, wo meine spezielle Software auf Arbeit wartet, um Rabbitmq zu umgehen, der Nachrichten Round-Robin-Algorithmus verteilt.

Vielleicht ist das keine Lösung, ist offen für jede Arbeitslösung

Antwort

0

von rabbitmq Server haben Sie tatsächlich rabbitmq Server oder Clients/Arbeiter bedeuten?

Wenn ich richtig verstehe, können Sie einen einzigen Austausch des Typs "Thema" erstellen. Erstellen Sie für jeden Mitarbeiter eine exklusive Warteschlange und binden Sie sie mit einem eindeutigen Routing-Schlüssel an die Vermittlungsstelle, der in Ihrem Fall die Funktion des Hosts sein wird. Wenn Sie eine Nachricht an die Vermittlungsstelle senden, verwenden Sie die Funktion als Routing-Schlüssel. Die Nachricht wird an den entsprechenden Host weitergeleitet.

1

Sie könnten immer eine Verbindung mit der IP-Adresse des bestimmten Knotens im Cluster herstellen, anstatt eine Verbindung zu einer Art Load Balancer vor dem Cluster herzustellen. Geben Sie also eine andere IP in der Clientmethode zum Öffnen des Verbindung.
Das schlägt natürlich den Zweck des Clusters, aber es scheint mir, dass Ihr Setup das gleiche tut :)