Skip to main content

Краткий ответ

Если вы ежемесячно генерируете очень большой объём изображений и хотите, чтобы задержка ответа API была ниже 360ms, переход на другой маршрут может дать лишь ограниченное улучшение, поскольку большинство альтернативных узлов размещены за рубежом и могут вносить дополнительную сетевую задержку. Сначала протестируйте замену исходного корневого URL:
на следующий HTTP endpoint:
Оставьте путь запроса без изменений. Например, замените https://api.apiyi.com/v1/images/generations на http://api.apiyi.com:16888/v1/images/generations.
HTTP не обеспечивает TLS-шифрование. Ваш API key и содержимое запроса передаются в открытом виде. Используйте этот endpoint только в доверенной сети или через правильно настроенную частную линию либо tunnel. Не вызывайте его напрямую через публичную сеть.

Оптимизация клиента

Некоторые API gateway демонстрируют нестабильное поведение HTTP/2 во время длительных или потоковых соединений, что может приводить к прерыванию передачи или дополнительным повторным попыткам. Настройте пользовательский HTTP-клиент, чтобы:
  • Принудительно использовать HTTP/1.1 и отключить HTTP/2
  • Включить pooling соединений и Keep-Alive, чтобы не создавать новое соединение для каждого запроса
  • Увеличить timeout чтения, чтобы он покрывал обычное время генерации изображений, а не использовать общий timeout 500ms
  • Повторять отдельные сетевые сбои ограниченное число раз с backoff
Рассматривайте 500ms как целевое значение для сетевых накладных расходов или отправки задачи, а не как гарантированное время завершения генерации изображения. Фактическая задержка также зависит от местоположения клиента, маршрутизации ISP, параллельных запросов, выбранной модели генерации изображений и обработки на стороне upstream. Запускайте тесты при параллельных запросах, близких к боевым, и оценивайте задержку P95 и P99 перед развёртыванием.

Рекомендуемый порядок устранения неполадок

1

Переключитесь на HTTP-эндпоинт

Замените корневой URL на http://api.apiyi.com:16888, сохранив существующий путь API и способ аутентификации.
2

Отключите HTTP/2

Принудительно используйте HTTP/1.1 в вашем клиенте и включите повторное использование соединений.
3

Настройте тайм-ауты и повторные попытки

Настройте тайм-ауты соединения и чтения отдельно. Тайм-аут чтения должен покрывать обычное время обработки изображений.
4

Выполните тест на параллельные запросы

Проверьте при параллельных запросах, близких к производственным, и отслеживайте задержку P50, P95, P99 и уровень ошибок.

Связанная документация