So verwenden Sie das Anforderungs-/Antwortmuster mit Smallrye mit MQ in JavaJava

Java-Forum
Anonymous
 So verwenden Sie das Anforderungs-/Antwortmuster mit Smallrye mit MQ in Java

Post by Anonymous »

Ich versuche, ein Anforderungs-/Antwortmuster im RPC-Stil mit SmallRye Reactive Messaging mit IBM MQ in einer Quarkus-Anwendung zu implementieren.
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:

    Code: Select all

    JMSCorrelationID = 'some-id'
    damit nur die passende Antwort empfangen wird
Dies funktioniert gut in herkömmlichem JMS, da ich eine temporäre Warteschlange erstellen und zum Zeitpunkt der Nutzung einen dynamischen Nachrichtenselektor anhängen kann.

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'
Aber für ein Anforderungs-/Antwortmuster hat jede Anforderung eine andere Korrelations-ID (normalerweise eine UUID), daher kann ich keinen festen Selektor vorkonfigurieren.
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
Daher kann ich den üblichen JMS-Anfrage-/Antwortfluss mit SmallRye nicht wiederherstellen, es sei denn, ich greife auf rohe JMS-APIs zurück.

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?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post