Ich werte derzeit Nachrichtenwarteschlangen-Systeme und RabbitMq scheint ein guter Kandidat, also gräme ich ein wenig mehr hinein.Tut RabbitMq Round-Robin vom Exchange zu den Warteschlangen
Um einen kleinen Zusammenhang zu geben, suche ich nach etwas wie einem Austausch, der die Nachrichtenveröffentlichung auf mehrere Warteschlangen verteilt. Ich möchte die Nachrichten nicht replizieren, daher ist ein Fanout-Austausch keine Option.
Auch der Grund, warum ich daran denke, mehrere Warteschlangen gegen eine Warteschlange zu haben, die das Round-Robin mit den Konsumenten behandelt, ist, dass ich nicht möchte, dass unser einzelner Fehlerpunkt auf der Warteschlangenebene liegt.
Klingt, als könnte ich einige Logik auf der Publisher-Seite hinzufügen, um dieses Verhalten zu simulieren, indem Sie den Routing-Schlüssel bearbeiten und die entsprechenden Bindungen an Ort und Stelle haben. Aber das ist eine Art passiver Ansatz, der nicht die Geschwindigkeit des Nachrichtenverbrauchs in jeder Warteschlange berücksichtigt, was möglicherweise dazu führt, dass eine Warteschlange voll wird, wenn die Verbraucheranwendungen für diese Warteschlange tot sind.
Ich suchte nach einem proaktiveren Weg von der Exchange-Entity-Seite, die entscheiden würde, wohin die nächste Nachricht basierend auf jeder Warteschlangengröße oder etwas dieser Art gesendet werden soll.
Ich lese über Alice und die verfügbaren RESTful APIs, aber das scheint eine schwere Lösung zu sein, um schnelle Routing-Entscheidungen zu implementieren.
Wer weiß, ob Round-Robin zwischen dem Austausch der Warteschlangen within RabbitMQ dann möglich ist? Vielen Dank.
Sobald wir eine einzelne Warteschlange in der Produktion getestet haben, knallten wir in ein Skalierungsproblem.Eine einzelne Warteschlange ist single-threaded. Es kann nicht mit unserer Ladung Schritt halten. Wir suchen nach Best Practices, um in einer Round-Robin-Distribution zu arbeiten. –