代理返回 429 Too Many Requests 怎么排查:请求频率、出口 IP 池和重试间隔检查表

代理请求返回 429 Too Many Requests 时,很多团队第一反应是继续换 IP、扩大 IP 数量,或者把重试次数调高。这个方向通常不够稳。429 的核心含义是请求节奏已经触发限制,问题可能在请求频率、出口 IP 池、并发策略、重试间隔,也可能在任务本身没有分层。

排查 429,不应把目标定成“强行继续请求”。更合理的目标是:先记录现象,再判断限制来自哪里,最后把请求节奏、出口 IP 使用方式和任务队列拆开处理。这样才能减少无效重试,也方便后续复盘。

下面这张检查表适合用于爬虫采集、价格监控、公开页面巡检、后台数据同步等合规场景。它不讨论账号批量注册、验证相关操作或平台规则处理细节。

一、先确认 429 出现在什么阶段

429 不是一个单独结论,而是一个现象。先确认它出现在任务的哪个阶段:首次请求、连续翻页、并发放大、重复失败后的重试,还是某个出口 IP 使用一段时间以后。

建议先记录 5 个字段:

  • 请求目标:域名、路径类型、是否为列表页或详情页。
  • 请求节奏:单 IP 每分钟请求数、总并发数、重试次数。
  • 出口信息:出口 IP、地区、代理类型、是否多任务共用。
  • 错误时间:首次出现时间、持续时间、是否集中在某个任务批次。
  • 响应差异:429 是否伴随 403、407、超时或连接重置。

如果同时出现认证错误,可以先参考 代理认证失败排查,不要把账号密码、白名单或协议格式问题误判成限流。

二、把请求频率按“单 IP”和“总任务”拆开看

很多 429 不是因为 IP 不够,而是因为同一个出口 IP 承担了过高的请求频率。排查时不要只看总请求数,要拆成两个维度:

维度 要看什么 常见误判
单 IP 频率 一个出口 IP 在单位时间内发了多少请求 只看整体 QPS,以为总量不高就没问题
任务并发 多少任务同时使用同一批代理 不同任务共享出口,实际叠加了频率
重试放大 失败后是否马上重复请求 以为重试是在修复,实际放大了限制
页面类型 列表页、搜索页、详情页是否分开限速 所有页面使用同一请求节奏

如果你已经在记录代理延迟、成功率和失败原因,可以把 429 作为独立失败类型加入 住宅代理健康检查 表,而不是混在“连接失败”里。

三、检查出口 IP 池是否被多个任务共用

出口 IP 池被多个任务同时使用时,很容易出现“单个任务看起来不快,总体却已经过快”的情况。尤其是采集任务、监控任务、登录维护任务混用同一批代理时,429 的排查会变得很混乱。

建议把任务分成三类:

  • 低频维护任务:需要稳定、节奏慢、记录完整。
  • 常规浏览任务:需要控制并发,避免集中打到同一类页面。
  • 采集或巡检任务:需要单独设定队列、间隔和失败记录。

如果不同任务必须使用同一代理池,至少要记录每个任务的时间窗口和请求上限。否则,看到 429 时很难判断是谁把出口 IP 用满了。

四、不要让重试机制把 429 放大

429 之后立即重试,通常不是好习惯。特别是自动任务把失败请求放回队列、立刻再次请求时,429 会被重试机制持续放大。

可以按下面顺序检查:

  1. 失败后是否立即重试。
  2. 重试是否换了出口 IP,但仍保持同样频率。
  3. 重试次数是否和任务优先级相关。
  4. 是否设置了退避间隔,而不是固定间隔。
  5. 429 是否进入单独记录,而不是被归到普通失败。

如果同一批任务还伴随超时或连接重置,可以对照 代理连接超时排查,把网络层问题和限流问题分开处理。

五、检查代理类型和任务类型是否匹配

不同代理类型适合的任务节奏不同。静态代理更适合长期维护和稳定账号环境,动态代理更适合需要周期性更换出口的任务,但两者都不等于可以无限提高请求频率。

判断代理类型时,先问三个问题:

  • 任务是否需要固定出口一段时间?
  • 任务是否允许更换出口 IP 后继续执行?
  • 任务是否对地区、时区、语言或账号环境有一致性要求?

如果这些问题没有先回答,只靠“多加 IP”处理 429,后续仍然会遇到难以复现的失败。选型时可以结合 代理 IP 服务入口 里的产品类型,再按任务节奏做具体配置。

六、用记录模板复盘,而不是凭感觉调参数

429 排查最怕凭感觉调参数:今天降低并发,明天增加代理,后天换任务脚本。每一步看似都在处理问题,但没有记录就无法知道哪个动作真正有效。

建议每次调整都记录:

字段 记录内容 用途
调整前频率 单 IP 请求数、总并发、重试次数 确认问题基线
调整动作 降频、分队列、扩大代理池、延长间隔 避免多个变量一起改
观察窗口 观察 10 分钟、30 分钟或一个任务批次 避免过早下结论
结果 429 数量、成功率、超时数量、失败路径 判断是否有效
下一步 继续观察、回滚、拆任务或更换策略 形成复盘闭环

如果团队还没有统一记录格式,可以先使用 代理测试记录模板 的思路,把连接、地区、认证和错误码放到同一个复盘表里。

七、429 排查顺序表

顺序 检查项 通过标准 不通过时怎么做
1 错误阶段 知道 429 出现在首次请求、翻页、并发还是重试阶段 先补日志,不急着改代理
2 单 IP 频率 能看到每个出口 IP 的单位时间请求数 按出口 IP 拆分统计
3 任务共用 不同任务不会无记录地共用同一出口池 拆队列或限定时间窗口
4 重试策略 429 后不会立即高频重试 加入退避间隔和重试上限
5 代理类型 代理类型与任务节奏匹配 重新区分维护、浏览和采集任务
6 复盘记录 每次调整只有一个主要变量 补充测试记录再继续

结论:429 先排节奏,再看代理池

429 的排查重点不是马上换一批代理,而是先把请求节奏、出口 IP 使用方式、任务队列和重试机制拆开。只有知道限制发生在哪里,代理池扩容、降频、分任务、延长间隔这些动作才有判断依据。

更稳妥的处理顺序是:先记录错误阶段,再看单 IP 频率,然后检查任务是否共用出口池,最后调整重试间隔和代理类型。这样处理 429,不是为了对抗限制,而是为了让代理使用方式更可控、可复盘、可调整。