SYSTEM ATLASЗагрузка материала

Retry Storm

Retry Storm

Повторы запросов усиливают перегрузку зависимого сервиса.

Простыми словами

Например, команда замечает симптомы «Retry Storm», но лечит каждый случай отдельно. Более устойчивый вариант — команда устраняет механизм «Retry Storm» через изменение границ, стимулов или ответственности. Поэтому поведение при сбое задают заранее: система должна ограничить ущерб, освободить ресурсы и дать оператору понятный сигнал.

Пример от @Vibeclakr

Пример при разработке

Несколько слоёв приложения повторяют один и тот же запрос по три раза. Один сбой базы превращается в десятки обращений; политику повторов координируют в одном месте.

Это редакционный пример применения, а не часть определения или доказательство концепции.

Механизм действия

Сначала проверяют, есть ли исходное условие из определения. Затем смотрят, как оно влияет на структуру компонентов, потоки данных, ограничения и действия участников. Если эту связь не удаётся наблюдать, принцип не стоит использовать как готовое объяснение.

Пример в работе

Нерабочий подход

Исправлять отдельные проявления «Retry Storm» по одному, не проверяя, нет ли у них общей причины.

Системный подход

Если «Retry Storm» действительно объясняет проблему, менять не отдельный симптом, а сам механизм — например границы, стимулы или распределение ответственности.

Ограничения

«Retry Storm» объясняет только часть происходящего в области «Надежность и SRE». Сам принцип не говорит, насколько сильным будет эффект в вашем случае, и не заменяет измерения. При другом масштабе, среде или временном горизонте результат может отличаться.

Источник

Marc Brooker. Timeouts, retries, and backoff with jitter. 2019.

Первоисточник