什么是速率限制?
速率限制是一种控制机制,云 API 用于调节用户可以在给定时间范围内发出的请求数。 云 API 生成者使用速率限制来确保请求流不会使服务不堪重负。 速率限制设置 API 调用的速度和数量上限,通常根据每个时间段的请求数进行定义。
云 API 为何使用速率限制
- 防止重载。 速率限制通过防止任何单个用户或服务充斥过多的请求,确保 API 服务器保持稳定且响应迅速。
- 确保公平使用。 速率限制强制实施公平使用策略,确保单个用户不会垄断 API 资源,从而允许对所有用户进行公平访问。
- 安全性。 它通过限制来自潜在恶意源的请求数,帮助缓解 DDoS(分布式拒绝服务)攻击和其他滥用行为。
- 成本管理 . 对于云服务提供商,速率限制有助于通过防止不可预知或过度使用资源来管理运营成本。
- 服务质量。 通过防止流量高峰,速率限制可确保所有用户的服务质量一致。
如何在应用中体验速率限制
生成集成云 API 的应用时,请检查其文档以验证它们是否支持速率限制。 如果是,则会收到 RateLimit-...
或 X-RateLimit-...
响应标头,其中包含有关速率限制的信息。 可以在应用程序中使用此信息来确保不超过 API 的速率限制。 例如,标头 RateLimit-Remaining
指示当前窗口中剩余的请求数。 如果收到此标头设置为 0 的响应,则表明已达到速率限制,应在发送另一个请求之前等待下一个窗口。 标头 RateLimit-Reset
指示速率限制重置的时间。 请记住,某些 API 仅在达到阈值后发送 RateLimit-...
标头,例如,剩余 10% 的请求数。
超过速率限制时,API 会限制返回 HTTP 429(请求过多)状态代码的请求。 某些 API 可能还会发送一个标头,指示在发送另一个 Retry-After
请求之前应等待多长时间。
为了避免限制并确保应用程序保持响应,应在应用程序中实现速率限制。 根据技术堆栈,有不同的库可帮助你处理应用程序中的速率限制。 在应用程序中实现速率限制后,测试它是否能够正确处理速率限制。