API 配额:区分总量、速率和并发

内容摘要

配额耗尽、瞬时突发和同时执行过多操作,需要不同处理。增加重试或账户前,先核对服务约定。

无人值守的安全服务器与网络机房通道
本文目录

识别实际触发的上限

HTTP 429 表示请求过多,可以带有 Retry-After。计数方式和范围由服务决定。较低的平均值也可能伴随短窗口超限。

概念限制对象有用措施
配额一段时间内的总量规划共享额度。
速率短窗口内的到达量分散启动时间。
并发执行中的操作限制同时进行的工作。
Retry-After: 120等待 120 秒检查总期限与重试安全性。

安排许可范围内的需求

  • 确认计数维度是账户、项目、用户还是路由,核对重置时区、每类操作消耗和共享额度。
  • 用有界队列平滑突发,另行限制正在执行的操作。传播取消信号,丢弃已无意义的任务。
  • 将 Retry-After 解析为 HTTP 日期或等待秒数,在总期限内遵守;缺失时也应限定等待。

评估重试而非绕过保护

429 不能证明该操作可安全重复。核对幂等性、总时长和尝试次数。测量拒绝量与队列长度;持续需求超出约定时,应减少需求或协商容量。

一手资料

使速率限制滥用行为可观察

请求限制若能区分合法使用和异常行为,并生成可解释的事件,则效果更佳。仅凭错误代码可能掩盖滥用模式的起始时间、持续时间和影响范围。

  • 记录阈值、决策、路由和最低限度上下文,且不得泄露任何秘密信息。
  • 将重复拒绝与对合法用户的影响关联起来。
  • 测试警报是否能引导调查或进行相应的调整。

一手资料:ACSC and partners — Event logging and threat detection. 相关方法:阅读实用指南.