识别实际触发的上限
HTTP 429 表示请求过多,可以带有 Retry-After。计数方式和范围由服务决定。较低的平均值也可能伴随短窗口超限。
| 概念 | 限制对象 | 有用措施 |
|---|---|---|
| 配额 | 一段时间内的总量 | 规划共享额度。 |
| 速率 | 短窗口内的到达量 | 分散启动时间。 |
| 并发 | 执行中的操作 | 限制同时进行的工作。 |
| Retry-After: 120 | 等待 120 秒 | 检查总期限与重试安全性。 |
安排许可范围内的需求
- 确认计数维度是账户、项目、用户还是路由,核对重置时区、每类操作消耗和共享额度。
- 用有界队列平滑突发,另行限制正在执行的操作。传播取消信号,丢弃已无意义的任务。
- 将 Retry-After 解析为 HTTP 日期或等待秒数,在总期限内遵守;缺失时也应限定等待。
评估重试而非绕过保护
429 不能证明该操作可安全重复。核对幂等性、总时长和尝试次数。测量拒绝量与队列长度;持续需求超出约定时,应减少需求或协商容量。
一手资料
使速率限制滥用行为可观察
请求限制若能区分合法使用和异常行为,并生成可解释的事件,则效果更佳。仅凭错误代码可能掩盖滥用模式的起始时间、持续时间和影响范围。
- 记录阈值、决策、路由和最低限度上下文,且不得泄露任何秘密信息。
- 将重复拒绝与对合法用户的影响关联起来。
- 测试警报是否能引导调查或进行相应的调整。
一手资料:ACSC and partners — Event logging and threat detection. 相关方法:阅读实用指南.
