Повторы без выдержки добивают восстанавливающийся сервис
Интеграция с внешним сервисом скоринга настроена так: при любой ошибке — до 10 повторов подряд без пауз. Когда скоринг начинает отвечать медленно, сервис генерирует десятикратный поток запросов, скоринг ложится совсем, а следом растёт число занятых горутин и в вызывающем сервисе. Какая комбинация мер правильная?
- Экспоненциальная выдержка с разбросом (jitter), ограничение числа попыток, таймаут на попытку и circuit breaker поверх интеграции
- Сократить паузы до нуля и увеличить число попыток — так запрос успеет попасть в окно, когда сервис отвечает
- Ретраить бесконечно до успеха: пользовательский запрос не должен завершаться ошибкой, пока скоринг жив
- Снять таймаут на вызов, чтобы медленные ответы не считались ошибками и не порождали новых повторов
