2017-01-16 1 views
0

In meiner App, mit zwei Warteschlangen, die mit einem Austausch mit einem Schlüssel bind bind a. . Alle Nachrichten, die mit diesem Schlüsselregex kommen, werden in beide Warteschlangen übertragen.Spring amqp Dead Letter Exchange mit mehreren Warteschlange Bind

Fall 2: Ich versuche, verzögern Nachricht und Max Wiederholungen im Fall Geschäftsfehler des Verbrauchers mit toten Brief Austauschmechanismus zu implementieren.

Problemfall angenommen, eine der Verbraucher der Warteschlange durch Business-Ausnahme .... Es wird die dlx gehen und dann auf die Hauptausnahme ..... Dann von der Haupt-Ausnahme .... Nachricht wird sowohl die Warteschlangen. Dies ist das Problem, vor dem ich stehe ..... Ich möchte, dass die Wiederholungsnachricht nur dann an diese Warteschlange gesendet wird, wenn die Konsumenten-Ausnahme aufgetreten ist.

Jetzt in meinen Fällen wird die Wiederholungsnachricht an alle Warteschlangen gesendet und doppelte Nachrichten erstellt.

Antwort

0

Sie können für jede Warteschlange eine zweite, warteschlangenspezifische Bindung hinzufügen. konfigurieren Sie dann jede DLQ mit diesem speziellen Routing-Schlüssel ...

x-dead-letter-exchange=mainExchange x-dead-letter-routing-key=retryMainQ1

Natürlich benötigen Sie 2 DLQs.

Verwandte Themen