Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
С помощью ограничения скорости можно ограничить количество вызовов API, которые пользователь или служба могут выполнять в определенный период времени. Ограничение скорости помогает обеспечить справедливое использование и предотвратить монополизацию ресурсов API одним пользователем или службой. Управление API Azure предоставляет удобный способ реализации ограничения скорости для API.
Зачем использовать службу управления API Azure?
Управление API Azure — это мощная и универсальная облачная служба, которая помогает организациям публиковать API для внешних, партнерских и внутренних разработчиков. Он предоставляет средства для защиты вызовов API, управления и масштабирования. Одним из его функций является управление ограничением скорости, которое полезно для поддержания работоспособности и надежности API.
Настройка ограничения трафика в Azure API Management
Azure Управление API использует политики для принудительного ограничения скорости. Эти политики можно определить в разных областях: глобальные, продукты или API. Эта гибкость позволяет настроить ограничение скорости в соответствии с требованиями и шаблонами использования API.
Перед началом реализации ограничения скорости определите ограничения скорости. Заданные ограничения зависят от емкости API и ожидаемого трафика. Общие ограничения задаются как количество звонков в секунду, минуту или час. Например, можно разрешить 1000 вызовов в минуту на пользователя.
Чтобы определить ограничения скорости на вашем API в Azure API Management, используйте политики rate-limit
или rate-limit-by-key
. Политика rate-limit
задает ограничение для всех пользователей. Политика rate-limit-by-key
позволяет ограничить определенный ключ (например, подписку или идентификатор пользователя).
Ниже приведен пример политики, которая ограничивает вызовы 1000 в минуту.
<policies>
<inbound>
<base />
<rate-limit calls="1000" renewal-period="60" />
</inbound>
<backend>
<base />
</backend>
<outbound>
<base />
</outbound>
<on-error>
<base />
</on-error>
</policies>
При превышении указанного количества вызовов служба "Управление API Azure" отправляет 429 Too Many Requests
код состояния, а также retry-after
заголовок ответа и сообщение, указывающее, когда можно повторить попытку.
HTTP/1.1 429 Too Many Requests
content-type: application/json
retry-after: 60
{
"statusCode": 429,
"message": "Rate limit is exceeded. Try again in 60 seconds."
}
Размещение сведений об ограничении скорости в заголовках ответов
По умолчанию Azure Управление API не предоставляет сведения о ограничении скорости в заголовках ответов. Неинформирование о лимитах скорости затрудняет приложениям избегать превышения предела и ограничения. Чтобы предоставить сведения об ограничении скорости, расширьте политику, используя свойства rate-limit
и remaining-calls-header-name
.
<policies>
<inbound>
<base />
<rate-limit calls="1000" renewal-period="60" remaining-calls-header-name="ratelimit-remaining" total-calls-header-name="ratelimit-limit" />
</inbound>
<backend>
<base />
</backend>
<outbound>
<base />
</outbound>
<on-error>
<base />
</on-error>
</policies>
При вызове API теперь каждый ответ включает в себя заголовки ratelimit-remaining
и ratelimit-limit
. Заголовки сообщают, сколько дополнительных вызовов API может обрабатывать до превышения предела.
Итоги
Реализация ограничения скорости в Azure Управление API помогает создавать надежные и масштабируемые API. Используя ограничение скорости, вы можете убедиться, что API обслуживает пользователей надежно и эффективно. Ключ заключается в том, чтобы найти правильный баланс. Если ограничение скорости слишком строго, вы можете ухудшить удобство использования. Если ограничение скорости слишком мягкое, вы рискуете перегрузкой API. Благодаря тщательному планированию и непрерывному мониторингу вы можете достичь этого баланса и поддерживать здоровую среду API.