Kanäle

Ein Kanal ist ein flüchtiges Ziel innerhalb einer Queue, mit dem die Fairness der Nachrichtenverarbeitung verbessert, die Nachrichtenauswahl angegeben und Anforderungs-/Antwortmuster aktiviert werden können. In einem Kanal veröffentlichte Nachrichten können sowohl von der Queue als auch von der Kanalebene verwendet werden.

Kanäle erhöhen die Anzahl einzelner, adressierbarer Ziele innerhalb einer einzelnen Queue und ermöglichen so eine bessere Skalierung.

Kanäle müssen nicht explizit erstellt oder gelöscht werden. Kanäle verwenden dieselben Berechtigungen, Verschlüsselungsmethoden und Grenzwerte für ihre übergeordnete Queue. Die Queues können jedoch die Kanalkapazität konfigurieren und so die maximale Gesamtkapazität der Queue begrenzen, die ein einzelner Kanal jederzeit verwenden kann.

Fairness bei Nachrichtenverarbeitung

Wenn viele Producer in derselben Warteschlange veröffentlichen, kann ein plötzlicher Anstieg des Volumens von einem Producer zu Verzögerungen bei der Verarbeitung von Nachrichten anderer Producer führen. In einigen Szenarios müssen Sie möglicherweise den Nachrichtenverbrauch vor dem Verzerren zugunsten von Verbrauchern mit mehr Traffic oder lauten Nachbarn schützen.

Ohne Kanäle müssen Sie für jeden Producer einzelne Queues verwalten und einen Load Balancing-Mechanismus implementieren, um Nachrichten von allen Producern gleichmäßig zu konsumieren.

Bei Kanälen kann jeder Producer Nachrichten in einem bestimmten Kanal veröffentlichen. Sie können jedoch Nachrichten auf Queueebene konsumieren. Der Queue-Service gibt Nachrichten von einem zufälligen Kanal mit verfügbaren Nachrichten zurück, was zu einer verbesserten Fairness führt.

Nachrichtenauswahl

Consumer können einen optionalen Parameter in Anforderungen aufnehmen, um Nachrichten auszuwählen, die mit der entsprechenden Kanal-ID veröffentlicht wurden. Der Queue-Service gibt nur verfügbare Nachrichten von einem der Kanäle zurück, die der ID entsprechen.

Wenn mehrere Kanal-IDs mit der Auswahl in einer Anforderung übereinstimmen, werden Nachrichten von einem Zufallskanal mit verfügbaren Nachrichten zurückgegeben. Wenn Nachrichten in einem bestimmten Kanal veröffentlicht werden, eine Verbrauchsanforderung jedoch keinen Kanal enthält, werden Nachrichten von einem zufälligen Kanal mit verfügbaren Nachrichten zurückgegeben.

Weitere Informationen finden Sie unter Nachrichten aus einem Channel konsumieren.

Anforderung - Antwortmuster

Ein ephemeres Muster "Request-Reply" ist ein etabliertes Integrationsmuster, mit dem eine Absenderanwendung eine Anforderung senden kann. Damit kann der Empfänger eine Antwort korrekt an die Absenderanwendung zurücksenden. Dieses Muster benötigt in der Regel nur eine kurzlebige Queue für die Transaktion.

Mithilfe von Queues und Kanälen können mehrere Anwendungen Nachrichten an eine einzelne Queue senden und eine Kanal-ID angeben, die sich eindeutig identifiziert. Eine Consumer-Anwendung kann eine Antwort an den Nachrichten-Producer senden und seine ID einschließen. Sobald der Producer die Antwort mit derselben ID erhält, wird die Transaktion als abgeschlossen betrachtet. Nachdem die Nachrichten erfolgreich verarbeitet und vom Consumer gelöscht wurden und wenn keine weiteren Nachrichten im Channel vorhanden sind, wird der Kanal automatisch gelöscht.