← 中文资源

简体中文版本

分析 API 429 限流窗口

把 429 响应与限流响应头对齐,重建客户端配额窗口,避免重试反而延长封禁时间。

阅读英文原文

目标

同步任务成批收到 429 后又等待远超预期,原因是重试不断重置自身配额。本配方把每次 429 与余量、重置时间等响应头对齐,重建配额窗口,并让客户端在 429 时暂停整个窗口而不是继续探测,从而让任务按配额节奏稳定完成。

步骤要点

  1. 从日志提取 429 与 x-ratelimit、retry-after 响应头。
  2. 按接口分别跟踪配额,而不是全局统一。
  3. 在 429 时按 retry-after 暂停整个窗口,停止探测。
  4. 验证限速后任务不再返回 429 且总耗时符合配额计算。
grep -E 'HTTP/|x-ratelimit|retry-after' access.log | tail -20

排错提示

  • 部分提供方把重试也计入配额,窗口内不要探测。
  • 不同接口限流不同,需分别跟踪。
  • 多客户端并发时缺少协调很难建模。

适用边界

  • 依赖提供方给出准确的限流响应头。
  • 只能节流,不能绕过限流。