0

Ich habe ein Publish-Subscribe-Szenario, das mit RabbitMQ erstellt wurde. Es gibt einen Austausch, bei dem die Nachrichten vom Herausgeber gesendet werden und jeder Verbraucher, der diesen Austausch abonniert, empfängt diese Nachrichten in ihren jeweiligen Warteschlangen. Dies ist ein Fanout-Szenario, in dem es einen einzelnen Produzenten, aber mehrere Konsumenten gibt.Separate Warteschlange für unzustellbare Nachrichten für jede Nachricht Consumer in RabbitMq

Jetzt bin ich bereit, eine Dead-Letter-Warteschlange in das System zu integrieren, so dass die zurückgewiesenen Nachrichten später behandelt werden können. Meine Fragen sind

1) Sollte ich eine separate Dead-Letter-Warteschlange für jeden Verbraucher konfiguriert haben oder sollte es eine einzige sein, um alle zurückgewiesenen Nachrichten von allen Verbrauchern zu behandeln?

2) Wenn beide möglich sind, welche ist besser?

3) Da es mehrere Beteiligte gibt, Produzenten und mehrere Verbraucher, die mit den toten Buchstaben umgehen sollten. Wird es der Produzent sein oder wird jeder Verbraucher seinen eigenen toten Brief auf seine eigene Weise behandeln?

4) Nur zur Bestätigung von Dead-Letter-Warteschlangen sollten immer Consumer-Warteschlangen und nicht die Producer-Queue oder der Producer-Exchange konfiguriert werden.

Antwort

0

Die Antworten hängen alle von Ihren Anforderungen ab.

  1. Es hängt davon ab, wie Sie Ihre toten Buchstaben Nachrichten verarbeiten - wenn Sie eine einzelne Warteschlange verwenden, können Sie die Informationen über das Herkunfts im x-death Header finden.
  2. "Besser" ist subjektiv - es hängt ganz davon ab, was Sie tun möchten.
  3. Wieder liegt es an Ihnen und Ihrem Anwendungsdesign.
  4. > ...producer queue... Hersteller wissen nicht über Warteschlangen - nur Austausch und (oft) Routing-Schlüssel. Also, ja, es ist im Allgemeinen eine Konfiguration auf der Verbraucherseite.
+0

Vielen Dank für die Klärung der Zweifel. – Soumya

Verwandte Themen