Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про RabbitMQ: deadletter

Что такое DLQ/DLX (dead-letter) в RabbitMQ и зачем нужно?

Вопрос проверяет понимание обработки ошибок в очередях и умение проектировать надёжную доставку сообщений.

Короткий ответ

DLX (Dead Letter Exchange) — это специальный exchange в RabbitMQ, куда попадают сообщения, которые не удалось обработать. DLQ (Dead Letter Queue) — это очередь, привязанная к этому exchange. Сообщения попадают туда, если они были отклонены, истёк TTL или очередь была переполнена. Это позволяет не терять проблемные сообщения и анализировать причины ошибок. DLQ используют для отладки, ретраев и мониторинга.

Длинный ответ

При работе с очередями важно уметь корректно обрабатывать сбои и некорректные сообщения.

Определение

Определение: Dead Letter Exchange (DLX) — это exchange, в который перенаправляются сообщения, не доставленные или отклонённые в основной очереди.
Dead Letter Queue (DLQ) — это очередь, получающая такие сообщения из DLX.

Когда сообщение попадает в DLQ

Сообщение считается “dead-letter” в следующих случаях:

  1. consumer вызвал reject / nack без requeue

  2. у сообщения истёк TTL

  3. очередь достигла лимита по длине

Как это настраивается

Настройка происходит на уровне очереди.

Пример концепции (упрощённо):

// очередь объявляется с аргументом x-dead-letter-exchange
x-dead-letter-exchange = dead.exchange

(привязка очереди и exchange обычно делается на уровне инфраструктуры)

Зачем это нужно

  • не терять сообщения при ошибках

  • разбирать “плохие” сообщения отдельно

  • строить повторную обработку (retry)

  • повышать надёжность системы

Практический пример

  • основная очередь обрабатывает заказы

  • сообщение падает из-за некорректных данных

  • оно уходит в DLQ

  • разработчик анализирует причину или запускает повторную обработку

Краткий вывод

DLQ/DLX стоит использовать в любых системах с очередями, где потеря сообщений недопустима и важна прозрачная обработка ошибок.

  • Аватар

    PHP Guru

    Mikhail Savin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    4

  • Сложность:

    6

Навыки

  • RabbitMQ

    RabbitMQ

Ключевые слова

#deadletter

Подпишись на PHP Developer в телеграм

  • Аватар

    PHP Guru

    Mikhail Savin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.