← AI 百科

限流(Rate Limit)

报错库 · 报错 / API / 编程基础
一句话:调用接口太频繁,超过服务商设定的次数上限,被暂时拒绝服务,通常报429错误。

它是什么

为了保护服务器不被过度请求压垮,几乎所有API服务都会设置调用频率上限(比如每分钟最多60次),超过这个上限的请求会被直接拒绝,报错通常是HTTP 429 (Too Many Requests)。

适合干什么

  • 批量调用API时频繁遇到429报错
  • 多用户共享一个API Key并发调用的场景

不适合干什么

  • 单次偶尔调用失败(可能是别的原因,不一定是限流),要先看清报错状态码确认

普通人怎么用

遇到429报错,最简单的处理是加个延迟重试(等几秒再试一次),大部分服务商的限流是短时间窗口内的,等一下就能恢复正常调用。

进阶用户怎么用

实现指数退避重试(第一次等1秒,失败再等2秒、4秒,逐渐拉长间隔),并且给并发请求加排队/限速控制,而不是无脑重试导致情况更糟;关注服务商返回的限流相关响应头(通常会告诉你还能调用多少次、多久后重置)。

常见误区

  • 以为限流是自己的账号出了问题,实际是正常的保护机制,几乎所有服务都有
  • 遇到限流疯狂立即重试,可能导致限流时间被进一步延长,正确做法是等待后再试

和相似工具的区别

  • 和API Key失效(401错误)不是一回事:限流是"调用太快",Key失效是"身份验证失败",报错状态码不同,解决方法也完全不同

入门步骤

  • 看清报错状态码是不是429
  • 读服务商文档确认具体的限流规则(次数/时间窗口)
  • 代码里加上失败重试和延迟机制