Управление ограничением скорости запросов

Ограничение скорости — это распространенный метод, используемый поставщиками API для управления количеством запросов, которые могут быть сделаны в службу в определенный период времени. Поставщики API используют ограничение скорости, чтобы обеспечить доступность и реагирование службы на всех пользователей, а также для предотвращения злоупотреблений или чрезмерного использования службы.

При использовании облачных API в приложении следует понимать их ограничения скорости. Следующие методы помогут вам справиться с ограничением скорости в приложениях:

  • Общие сведения об ограничениях скорости. Ознакомьтесь с документацией по API, используемой для понимания ограничений скорости. Ограничения скорости могут зависеть от поставщика API или плана службы, который вы используете. Например, некоторые API могут иметь разные ограничения скорости для бесплатных и платных планов.
  • Используйте сведения об ограничении скорости. API, использующие ограничения скорости, обычно передают текущие ограничения скорости в заголовках ответа. Например, заголовок RateLimit-Remaining указывает количество запросов, оставшихся в текущем окне. Если вы получите ответ с заголовком, установленным в 0, вы знаете, что достигли предела скорости и должны дождаться открытия следующего окна перед отправкой другого запроса. Заголовок RateLimit-Reset указывает время сброса ограничения скорости. Некоторые API отправляют RateLimit-... заголовки только после достижения порогового значения. Например, когда у вас осталось 10% запросов.
  • Оптимизация использования API. Некоторые службы назначают разные затраты различным запросам на основе их сложности. Например, некоторые API могут взимать больше за запросы, возвращающие дополнительные данные. Чтобы сократить затраты на приложение, оптимизируйте использование API, извлекая только необходимые данные. Используйте пакетные запросы, если API поддерживает их. Они помогают сократить количество ресурсов, необходимых для обработки ответа, и оставаться в пределах ограничений скорости.
  • Реализуйте локальный лимит скорости. Реализуйте ограничение скорости в самом приложении, чтобы ограничить количество запросов, которые можно выполнить в API в определенный период времени. Это можно сделать с помощью таких методов, как контейнер токенов или алгоритмы утечки контейнеров, которые позволяют приложению выполнять много запросов в течение определенного периода времени. Любые последующие запросы ставятся в очередь или удаляются.
  • Избегайте превышения ограничений скорости. При превышении лимитов скорости API ограничивает все последующие запросы, обычно возвращающие код состояния HTTP 429 Too Many Requests. Как правило, регулирование влияет на пропускную способность приложения больше, чем ограничение скорости. Используйте информацию, предоставленную в заголовках ответов ограничения скорости, чтобы оставаться в пределах ограничений скорости и избегать регулирования.

С помощью этих методов можно создавать приложения, которые устойчивы к ограничению скорости и могут продолжать функционировать, даже если API находится под тяжелой нагрузкой.

Следующий шаг