标准答案

  1. 限流维度可以包括 IP、用户、租户、API Key、路由、资源成本和并发数;不同接口应按成本和风险设置不同阈值。
  2. 配额适合控制每天调用次数、存储量、导出量或模型额度等长期消耗,通常需要可查询、可审计和可升级的使用记录。
  3. 服务端返回 429 时应提供稳定错误码,并在适用时返回 Retry-After 或剩余额度信息,让客户端知道何时再试。
  4. 高成本操作还应限制并发、请求体大小和队列长度,单纯按每秒请求数限流无法防止少量大任务耗尽资源。
  5. 客户端应合并重复请求、缓存可缓存结果、按 Retry-After 或退避策略等待,并在超过预算后给用户明确反馈。

题目解析

限流既是稳定性手段也是公平性和安全性手段。认证前后可采用不同维度,避免攻击者用大量匿名身份绕过简单 IP 规则。

分布式限流的时钟、存储一致性和故障降级需要明确;限流组件不可用时要选择保守拒绝还是有限放行。

常见误区

  • 所有接口使用同一个固定 QPS,不区分读写、成本和身份。
  • 返回 429 后不给客户端任何重试时间或额度信息。
  • 客户端收到 429 立即并发重试,反而延长整体故障。

作者信息