比较配额和 SpikeArrest 政策

您正在查看 Apigee Edge 文档。
前往 Apigee X 文档
信息

配额和 SpikeArrest 政策 - 想要知道使用哪种政策来最好地满足您的速率限制需求?请看下面的对比图。

配额 SpikeArrest
该模型可用于: 限制应用在特定时间段内可以与 API 代理的目标后端建立的连接数。 保护 API 代理的目标后端免受严重流量高峰和拒绝服务攻击。
请勿将其用于以下用途:

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

为此,请使用 SparkeArrest 政策。

请勿使用它来计算和限制应用在特定时间段内可以与 API 代理的目标后端建立的连接数。

为此,请使用配额政策。

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

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

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

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

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

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

500(内部服务器错误)*

500(内部服务器错误)*

重要提示:
  • 配额计数器存储在 Cassandra 中。
  • 配置政策以异步同步计数器,节省资源。
  • 异步计数器同步可能会导致速率限制响应延迟,这可能会导致调用次数稍微超过所设置的限制。
  • 根据最后收到流量的时间执行限制。此时间按消息处理器存储。
  • 如果指定速率限制为每秒 100 次调用,则消息处理器只允许每 1/100 秒(10 毫秒)执行 1次调用。在 10 毫秒内进行的第二次调用将被拒绝。
  • 即使每秒速率上限较高,几乎同时发生的请求也可能导致拒绝。
了解更多详情: 配额政策 SpikeArrest 政策

*对于配额政策SpikeArrest 政策,超出速率限制的默认 HTTP 状态代码是通用 500 Internal Server Error。 您可以通过添加组织级层的属性 (features.isHTTPStatusTooManyRequestEnabled),将这些政策的状态代码更改为 429 Too Many Requests。如果您是 Cloud 客户,请与 Apigee Edge 支持团队联系以启用该属性。