Ich weiß bereits, wie man dieses Muster mit einfachem JMS implementiert:
- Der Produzent sendet eine Nachricht mit einer eindeutigen JMSCorrelationID
- Antworten des Verbrauchers unter Verwendung derselben Korrelations-ID
- Der Produzent verwendet einen Nachrichtenselektor wie:
damit nur die passende Antwort empfangen wirdCode: Select all
JMSCorrelationID = 'some-id'
Problem mit SmallRye
SmallRye Reactive Messaging scheint keine dynamischen Korrelations-IDs zuzulassen der @Incoming-Kanal.
Die Konfiguration erfordert einen statischen Selektor in application.properties, zum Beispiel:
Code: Select all
mp.messaging.incoming.reply-channel.selector=JMSCorrelationID='123'
SmallRye bietet keine Möglichkeit, um:
- einen dynamischen Verbraucher zur Laufzeit zu erstellen
- einen Selektor dynamisch anzuwenden
- Binden Sie einen eingehenden Kanal an eine temporäre Warteschlange, die im laufenden Betrieb erstellt wird
Frage
Gibt es eine Möglichkeit, das JMS zu implementieren? Anforderungs-/Antwortmuster mit dynamischen Korrelations-IDs (oder temporären Warteschlangen) unter Verwendung von SmallRye Reactive Messaging + IBM MQ?
Oder ist die einzig praktikable Lösung, SmallRye zu umgehen und die JMS-API direkt für diesen speziellen Anwendungsfall zu verwenden?
Mobile version