Получить доступ

Что такое dead letter queue (DLQ) и зачем она нужна?

SeniorРетраи, DLQ и идемпотентность
Ещё спрашивают так:
  • Что делать с сообщением, которое не удаётся обработать?
Коротко

DLQ — отдельная очередь или топик, куда уходит сообщение после N неудачных попыток, чтобы не блокировать поток и не потеряться.

  • Ядовитое сообщение без DLQ бесконечно повторяется и стопорит партицию
  • В DLQ — с причиной, стеком, числом попыток, исходным топиком и offset
  • У DLQ есть владелец и алерт; разбор и переигрывание после исправления

А ещё В RabbitMQ — DLX, в SQS — redrive policy, в Kafka — отдельный топик (Spring: DeadLetterPublishingRecoverer)

Так подсказку видит пользователь sotto на живом собеседовании — за пару секунд, пока вы думаете вслух.

Подробно

Объясни: при повторяющихся ошибках сообщение после ограниченных ретраев (экспоненциальный backoff + jitter) перенаправляется в DLQ; это спасает от poison-message, который иначе застрял бы в цикле ретраев. Различи blocking retry (повтор на месте — держит партицию и тормозит соседние сообщения) и non-blocking retry (через retry-топики). В DLQ-запись кладут payload + причину сбоя + число попыток + исходный топик/offset, иначе разобрать её нельзя. Затем DLQ мониторят, алертят на её рост и делают redrive после фикса.

Что хотят услышать

  • Зачем DLQ: не блокировать поток и не терять.
  • Когда сообщение туда попадает.
  • Что хранить и как разбирать.

Частые ошибки

  • Складывать в DLQ без мониторинга — сообщения просто теряются из виду.
  • Бесконечно ретраить poison-message.
  • Ретраить без backoff/jitter — получить retry storm.
  • Класть в DLQ только payload без причины сбоя и offset — разобрать потом невозможно.

Что спросят дальше

  • Чем blocking retry отличается от non-blocking (retry-топики)?
  • Что класть в метаданные DLQ-сообщения?

Разбор темы

Связанные вопросы

Закрытая бета

Подсказки на собеседовании — в реальном времени

sotto слышит вопрос интервьюера и показывает короткий ответ и план, как в блоке «Коротко». Оставьте контакт — пришлём доступ и промокод.

  • Промокод на 2 часа — сверх пробных 30 минут
  • Программа для Windows — скачать сразу, войти — через Яндекс ID или VK ID
  • Прямая связь с разработчиком: что улучшить — сделаем