发送反馈
比较配额和 SpikeArrest 政策
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
本页面适用于 Apigee 和 Apigee Hybrid 。
查看 Apigee Edge 文档。
要点 :配额 和 SpikeArrest 政策都会对请求进行计数,并在超出指定的请求数量阈值时采取相应措施。但请注意,这些政策对请求进行计数的机制并不相同。
虽然 SpikeArrest 可以保持高可靠性的计数,但它使用 Redis 最优缓存 机制来存储其计数。由于系统未复制缓存,因此在某些情况下(例如缓存服务器重启或其他罕见情况),计数可能会丢失。
因此,我们建议不要将 SpikeArrest 用于需要准确计数的用例。只有同步配额政策可以提供给定时间范围内所有区域的准确计数。
您可以借助下面的比较图表来确定在您的速率限制用例中要使用哪项政策:
配额
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 政策
提示 :您还可以使用以下方法来保护速度慢/缓慢的后端,而不影响 API 的性能:创建可重复使用的共享流 :将政策和资源组合成一个可供您从多个 API 代理(甚至是其他共享流)使用的共享流。
将 API 代理链接在一起 :指定一个代理是另一个代理的目标端点,从而有效地连接代理链中的两个代理。以这种方式链接代理可以帮助您避免网络跃点,从而提升整体性能。
发送反馈
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可 获得了许可,并且代码示例已根据 Apache 2.0 许可 获得了许可。有关详情,请参阅 Google 开发者网站政策 。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2024-07-02。
需要向我们提供更多信息?
[[["易于理解","easyToUnderstand","thumb-up"],["解决了我的问题","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["翻译问题","translationIssue","thumb-down"],["其他","otherDown","thumb-down"]],["最后更新时间 (UTC):2024-07-02。"],[],[]]