Zum Inhalt springen

Dead-Letter Queue

Eine Dead-Letter Queue nimmt ausgesonderte Nachrichten auf, damit Fehler untersucht und Nachrichten gezielt erneut verarbeitet werden können.

Auch bekannt alsDLQ
API und Datenverträge

Eine Dead-Letter Queue (DLQ) ist eine separate Warteschlange für ausgesonderte Nachrichten. Sie macht nicht verarbeitete Nachrichten für Untersuchung und kontrollierte Wiederaufnahme zugänglich. Welche Nachrichten dort landen, bestimmt die Konfiguration; nicht jeder Anwendungsfehler führt automatisch dorthin.

Aussondern braucht einen Rückweg

In einem fiktiven Integrationssystem enthält die Nachricht E-81 eine nicht unterstützte Schemaversion. Statt sie endlos im normalen Ablauf zu wiederholen, wird sie über die eingerichtete Fehlerroute ausgesondert. Das Team hält Fehlergrund und Nachrichtenkennung nachvollziehbar fest. Nach einer Datenkorrektur oder Anpassung des Consumers kann es die Nachricht gezielt erneut verarbeiten und doppelte Auswirkungen verhindern.

In RabbitMQ ist der Dead-Letter Exchange (DLX) die Verteilstelle, die solche Nachrichten an gebundene Queues weiterleitet. Er ist nicht selbst die DLQ. Gründe können etwa eine Ablehnung ohne Wiedereinreihen, abgelaufene Nachrichtengültigkeit oder konfigurierte Grenzen sein. Routing und passende Bindings müssen eingerichtet sein.

Überwachung, Zugriffsrechte, Aufbewahrung und Wiederaufnahmeverfahren gehören dazu. Die DLQ ist weder ein abgeschlossener Auftrag noch eine automatische Reparatur. Auch die Weiterleitung ist keine pauschale Verlustfreiheitsgarantie: RabbitMQs standardmäßiges Dead-Lettering kann Nachrichten verlieren, wenn die Zielqueue nicht verfügbar ist.

Quellen