Поделиться через


Что такое ограничение скорости?

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

Почему облачные API используют ограничение скорости

  • Предотвратить перегрузку. Ограничение скорости гарантирует, что сервер API остается стабильным и адаптивным, предотвращая переполнение сервера API одним пользователем или службой с слишком большим количеством запросов.
  • Обеспечение справедливого использования. Ограничение скорости применяет политики справедливого использования, гарантируя, что ни один пользователь не монополизирует ресурсы API. Ограничение скорости обеспечивает справедливый доступ ко всем пользователям.
  • Увеличьте безопасность. Ограничение скорости помогает смягчить атаки распределенного типа "Отказ в обслуживании" и другие оскорбительные действия, ограничив количество запросов от потенциально вредоносных источников.
  • Управление себестоимостью. Для поставщиков облачных служб ограничение скорости помогает управлять операционными затратами, предотвращая непредсказуемое или чрезмерное использование ресурсов.
  • Поддержание качества обслуживания. Ограничение скорости обеспечивает согласованное качество обслуживания для всех пользователей, предотвращая пики трафика.

Как вы испытываете ограничение скорости в приложениях

При создании приложений, которые интегрируют облачные API, проверьте их документацию, чтобы убедиться, что они поддерживают ограничение скорости. Если они это делают, вы получаете заголовки ответа RateLimit-... или X-RateLimit-... с информацией о лимитах скорости. Эти сведения можно использовать в приложении, чтобы убедиться, что вы не превышаете пределы скорости API. Например, заголовок RateLimit-Remaining указывает количество оставшихся в текущем окне запросов. Если вы получите ответ с заголовком, установленным в 0, вы знаете, что достигли предела скорости и должны дождаться открытия следующего окна перед отправкой другого запроса. Заголовок RateLimit-Reset указывает время сброса ограничения скорости. Некоторые API отправляют RateLimit-... заголовки только после достижения порогового значения. Например, когда у вас осталось 10% запросов.

При превышении ограничения скорости API регулирует запросы и возвращает код состояния HTTP 429 Too Many Requests . Некоторые API также могут отправлять заголовок Retry-After, чтобы указать, сколько времени следует ждать перед отправкой другого запроса.

Чтобы избежать регулирования и убедиться, что приложение остается адаптивным, реализуйте ограничение скорости в приложении. В зависимости от стека технологий различные библиотеки помогут вам справиться с ограничением скорости в приложении. После реализации ограничения скорости в приложении проверьте правильность обработки ограничения скорости.

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