устойчивость клиентского запроса
Текст термина (дословно из источника)
Устойчивость запроса - это способность клиента корректно завершать операции при нестабильной сети и временных сбоях сервиса.
Простыми словами: клиент должен "падать предсказуемо" и "повторять безопасно".
Ключевые настройки:
- Таймаут соединения (
--connect-timeout)
- Ограничивает ожидание установки TCP/TLS соединения.
- Общий таймаут (
-m/--max-time)
- Ограничивает максимальную длительность запроса целиком.
- Retry
- Повторяет запрос при временных ошибках, но с лимитом попыток.
- Backoff
- Увеличивает паузу между повторами (например 1s -> 2s -> 4s), снижая давление на API.
- Идемпотентность
- Повторы безопаснее для read-операций; для write-операций нужна дополнительная защита от дублей.
На примере Метрики:
- read-сценарии (
/stat/v1/data,/management/v1/counters) обычно хорошо подходят для контролируемого retry; - при
429нужно применять backoff и пересматривать частоту запросов; - для workflow выгрузок важен контроль состояния задач, а не агрессивные повторы "в лоб".
Практический вывод:
- Retry без стратегии backoff ухудшает стабильность вместо улучшения.
- Для Метрики лучше иметь разные профили таймаутов/повторов для read-API и тяжелых workflow.