Hoppa till innehållet

Dead-letter-kö

En dead-letter-kö lagrar avskilda meddelanden för undersökning och kontrollerad ombearbetning.

Även känt somDLQDead-letter queue
API:er och datakontrakt

En dead-letter-kö (DLQ) är en separat kö för meddelanden som har tagits ur den normala behandlingen. Den gör obehandlade meddelanden tillgängliga för undersökning och kontrollerad ombearbetning. Konfigurationen avgör vilka meddelanden som hamnar där; inte varje applikationsfel skickar automatiskt ett meddelande dit.

Avskiljning behöver en väg tillbaka

I ett fiktivt integrationssystem innehåller meddelande E-81 en schemaversion som inte stöds. I stället för att provas om i all oändlighet i det normala flödet följer det den konfigurerade felrutten. Teamet registrerar felorsak och meddelandeidentitet så att de går att spåra. Efter rättning av data eller anpassning av konsumenten kan meddelandet behandlas på nytt under kontroll, samtidigt som dubbla effekter förhindras.

I RabbitMQ är Dead-Letter Exchange (DLX) den fördelningspunkt som skickar meddelandena vidare till bundna köer. Den är inte själva DLQ:n. Orsaker kan vara avvisning utan återköning, utgången giltighetstid eller konfigurerade gränser. Routning och lämpliga köbindningar måste finnas.

Övervakning, behörigheter, lagring och en rutin för ombearbetning behövs också. DLQ:n är varken en slutförd uppgift eller en automatisk reparation. Vidarebefordran garanterar inte heller mot förlust: RabbitMQ:s vanliga dead-lettering kan förlora meddelanden om målkön inte är tillgänglig.

Källor