Что такое экспоненциальная задержка (Exponential Backoff) и джиттер (Jitter) при проектировании повторных попыток (retries) запросов к нестабильным внешним сервисам?

Exponential backoff увеличивает паузу между повторами, а jitter добавляет случайность, чтобы множество клиентов не повторяли запрос одновременно. Нужны также общий deadline и ограничение попыток.

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

Что ответить на собеседовании

Exponential backoff увеличивает паузу между повторами, а jitter добавляет случайность, чтобы множество клиентов не повторяли запрос одновременно. Нужны также общий deadline и ограничение попыток.

Подробный разбор

Ответ с пояснениями

Exponential backoff увеличивает паузу между повторами, а jitter добавляет случайность, чтобы множество клиентов не повторяли запрос одновременно. Нужны также общий deadline и ограничение попыток.

Пример схемы: верхняя граница задержки растёт как min(cap, base * 2**attempt), а фактическая пауза выбирается случайно внутри неё. Это снижает синхронные волны нагрузки после отказа. Учитывайте Retry-After, если его возвращает сервис. Повторяют только подходящие временные ошибки и безопасные или идемпотентные операции. Слишком много независимых retry-слоёв может умножить число запросов, поэтому бюджет повторов согласуют между компонентами.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее