Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Задачи

Войти

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

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

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про RabbitMQ: retry, backoff, dlq

Какие стратегии можно использовать, чтобы “плохие” сообщения не блокировали очередь?

Вопрос проверяет знание архитектурных подходов к обработке ошибок и повторных попыток.

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

Основные стратегии — ограничение числа повторных попыток, использование DLQ и отложенных повторных доставок. Также применяют exponential backoff, чтобы снизить нагрузку при повторных попытках. Полезно разделять очереди по типам задач и изолировать тяжелые сообщения. Воркеры должны корректно обрабатывать исключения и не падать полностью.

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

Чтобы “плохие” сообщения не блокировали обработку, применяют несколько архитектурных паттернов.

1) Retry с задержкой (backoff)

Схема:

  1. сообщение не обработалось

  2. отправляется в retry-очередь

  3. через TTL возвращается обратно

Плюсы:

  • снижает нагрузку

  • дает время на восстановление зависимостей

2) Dead Letter Queue

Используется для:

  • сообщений, превышающих лимит попыток

  • сообщений с некорректным форматом

Это предотвращает бесконечный цикл повторной доставки.

3) Разделение очередей

Подход:

  • разные очереди для разных типов задач

  • тяжелые задачи не мешают легким

4) Ограничение параллелизма

Настройка:

  • prefetch

  • количество воркеров

Это предотвращает захват всей очереди проблемными задачами.

5) Circuit breaker и таймауты

Если внешняя система недоступна:

  • временно прекращают запросы

  • сообщения отправляются в retry

Вывод
Стратегия обычно комбинирует retry, DLQ, backoff и изоляцию очередей, что предотвращает блокировку пайплайна.

  • Аватар

    Python Guru

    Sergey Filichkin

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

Уровень

  • Рейтинг:

    5

  • Сложность:

    7

Навыки

  • RabbitMQ

    RabbitMQ

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

#retry

#backoff

#dlq

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

  • Аватар

    Python Guru

    Sergey Filichkin

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