比较配额和 SpikeArrest 政策

本页面适用于 ApigeeApigee Hybrid

查看 Apigee Edge 文档。

您可以借助下面的比较图表来确定在您的速率限制用例中要使用哪项政策:

配额 SpikeArrest
该模型可用于: 限制开发者应用或开发者在特定时间段内可以进行的 API 代理调用的数量。SpikeArrest 政策更适合较短时间间隔(如以秒或分钟计)内的速率限制。如果需要准确计数,请考虑使用配额。 限制在特定时间段(通常较短)内所有使用方可以针对 API 代理进行的 API 调用的数量。配额政策更适合在较长时间间隔(如以天、周、月或年计)内设置限制。
请勿将其用于以下用途:

请勿使用它来保护 API 代理的目标后端免受流量高峰的影响。

为此,请使用 SparkeArrest 政策。

请勿使用它来计算和限制应用在特定时间段内可以与 API 代理的目标后端建立的连接数。 注意:如有任何需要准确计数的用例,请使用配额政策。

存储计数?
附加政策的最佳做法:

将其附加到 ProxyEndpoint Request PreFlow,通常是用户进行身份验证之后。

这样,该政策便可在 API 代理的入口点检查配额计数器。

将其附加到 ProxyEndpoint Request PreFlow,通常是在流程的开始处。

这样可以在 API 代理的入口点提供高峰防护。

达到上限时的 HTTP 状态代码:

429 (Service Unavailable)

429 (Service Unavailable)

重要提示:
  • 配额计数器存储在 Cassandra 中。
  • 配置政策以异步同步计数器,节省资源。
  • 异步计数器同步可能会导致速率限制响应延迟,这可能会导致调用次数稍微超过所设置的限制。
让您可以选择“平滑”算法或有效计数算法。前者可以平滑在指定时间段内发生的请求数;而后者可以限制在指定时间段内可以发生的请求总数,无论它们是以多快的速度连续发送。此外,平滑操作无法在消息处理器之间进行协调。
了解更多详情: 配额政策 SpikeArrest 政策