Dead-Letter Queue
Eine Dead-Letter Queue nimmt ausgesonderte Nachrichten auf, damit Fehler untersucht und Nachrichten gezielt erneut verarbeitet werden können.
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
Verwandte Begriffe
- NachrichtenbestätigungEine Nachrichtenbestätigung meldet dem Broker, dass eine Zustellung nach der vereinbarten Regel angenommen oder verarbeitet wurde.
- Transactional InboxEine Transactional Inbox nutzt dauerhafte Nachrichteneinträge, um die lokale Verarbeitung gegen doppelte Zustellungen abzusichern.
- Retry-StrategieEine Retry-Strategie legt fest, bei welchen Fehlern, mit welchen Pausen und bis zu welcher Grenze erneut versucht wird.
- Server-Sent EventsServer-Sent Events übertragen über eine HTTP-Verbindung Textmeldungen vom Server zum Client, etwa zum Fortschritt eines Hintergrundauftrags.
- Entity TagEin ETag kennzeichnet eine bestimmte Darstellungsversion einer HTTP-Ressource und ermöglicht bedingte Abrufe oder Änderungen.
- Cross-Origin Resource SharingCORS steuert im Browser die Freigabe von Antworten über Origin-Grenzen. Es ersetzt weder die Anmeldung noch die Berechtigungsprüfung einer API.
Ihr Vorhaben mit ASES
Beschreiben Sie uns Ihr Vorhaben. Wir melden uns mit einer ersten Einschätzung.