Повторы запросов усугубили аварию у смежного сервиса
Сервис обрабатывает около 500 запросов в секунду и на каждый обращается к смежному сервису тарификации. На любую ошибку настроено 5 повторов подряд без паузы.
Тарификация начала отвечать 503 при частичной деградации. Через минуту она лежит полностью, а ваш сервис держит все потоки занятыми повторами. Как объяснить произошедшее и что менять?
- Повторов слишком мало: стоит увеличить их число и таймауты, тогда запрос рано или поздно пройдёт
- Повторы умножили трафик на уже перегруженный сервис и заняли собственные потоки: нужны паузы с разбросом, лимит попыток и circuit breaker
- Повторы безопасны, потому что 503 означает, что запрос не был обработан; проблема только в зашумлённых логах
- Достаточно перенести вызов в асинхронный метод: потоки освободятся, и нагрузка на смежный сервис снизится
