TGStat
TGStat
Введите текст для поиска
Расширенный поиск каналов
  • flag Russian
    Язык сайта
    flag Russian flag English flag Uzbek
  • Вход на сайт
  • Каталог
    Каталог каналов и чатов Региональные подборки Тематические подборки Платные каналы Поиск каналов
    Добавить канал/чат
  • Рейтинги
    Рейтинг каналов Рейтинг чатов Рейтинг публикаций
    Рейтинги брендов и персон
  • Аналитика
  • Поиск по публикациям
  • Мониторинг Telegram
  • Продвижение
    Реклама через Яндекс Бизнес Реклама в каналах через TGStat Agency Реклама на сайте TGStat.ru
EvApps

23 Sep, 12:03

Открыть в Telegram Поделиться Пожаловаться

🔁 Ретраи, которые добивают лежачий сервис
Сервис-сосед начал тупить, отвечает через раз
Логично же - повторить запрос, ретрай спасёт
Так думает не только твой код, а все сто инстансов сразу
И вот тут ретрай из спасения превращается в оружие против самого сервиса

💥 Retry storm
База или соседний сервис просели под нагрузкой, отвечают с ошибками
Каждый клиент, поймав ошибку, тут же повторяет запрос
Был один поток запросов - стало два, потом три
Сервис, который и так на пределе, получает в разы больше нагрузки именно в тот момент, когда ему плохо
В итоге он ложится окончательно, и ретраи держат его на дне, не давая подняться

⏳ Экспоненциальная задержка
Первое лекарство - не долбить сразу
Не "ошибка - мгновенно повторил", а "подожди и повтори с растущей паузой": 1 секунда, потом 2, потом 4, потом 8
Так ты даёшь соседу передышку вместо того, чтобы добивать лежащего
Плюс всегда ставь: максимум попыток и максимальную задержку, иначе клиенты будут висеть вечно

🎲 Джиттер - без него всё зря
А вот про это забывают
Даже с экспоненциальной задержкой есть засада: если сотня клиентов упала в одну секунду, то и повторят они синхронно - через 1с все разом, через 2с все разом
Получаются волны, которые снова добивают сервис пачками

Лечится джиттером - случайной добавкой к задержке
Не ровно 2 секунды, а 2 плюс-минус случайные миллисекунды
Тогда клиенты размазываются во времени и не бьют залпом
Мелочь, а именно она превращает ретраи из волн в ровный аккуратный поток

🛡 Что ещё
- Ретрай только идемпотентных операций
Повторять "создать платёж" вслепую - привет, двойное списание (об этом был отдельный пост)
- Уважай Retry-After
Если сервис в ответе явно сказал "приходи через 5 секунд" - слушайся, а не долби по своему расписанию
- Circuit breaker
Если сосед стабильно падает, перестань ходить к нему вообще на какое-то время - дай ему встать, а сам отдай заглушку

Ретраи - штука нужная, но наивный "поймал ошибку - сразу повторил" под нагрузкой не лечит
Пауза с ростом, джиттер и потолок попыток - вот что превращает их из проблемы в защиту

Свой сервис заваливали ретраями? 🤔

#backend #reliability #distributed #dev #programming #devops

69 0 0
Каталог
Каталог каналов и чатов Подборки каналов Поиск каналов Добавить канал/чат
Рейтинги
Рейтинг каналов Telegram Рейтинг чатов Telegram Рейтинг публикаций Рейтинги брендов и персон
API
API статистики API поиска публикаций API Callback
Наши каналы
@TGStat @TGStat_Chat @telepulse @TGStatAPI
Почитать
Академия TGStat Исследование Telegram 2019 Исследование Telegram 2021 Исследование Telegram 2023
Контакты
Справочный центр Поддержка Почта Вакансии
Всякая всячина
Пользовательское соглашение Политика конфиденциальности Публичная оферта
Наши боты
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot