LogoToRouter 文档
LogoToRouter 文档
首页ToRouter 是什么5 分钟快速开始核心概念
常见 HTTP 错误被限流:如何处理Key 被冻结或撤销上游错误与失败转移生产最佳实践
故障排查

被限流:如何处理

ToRouter 的 429 有三种来源,识别清楚再针对性修复。

ToRouter 返回 429 Too Many Requests 时,可能来自三个不同的来源。错误体会告诉你是哪一种。

三种来源

客户端:退避重试

Key 级限流最便宜的处理方式是退避重试。OpenAI / Anthropic 官方 SDK 通过 max_retries 自动做;裸 HTTP 请自行实现指数退避:

python
import time, random
from openai import OpenAI, RateLimitError

client = OpenAI(api_key="sk-***", base_url="https://portal.torouter.ai/v1")

def call_with_retry(**kwargs):
    for attempt in range(6):
        try:
            return client.chat.completions.create(**kwargs)
        except RateLimitError:
            time.sleep((2 ** attempt) + random.random())
    raise
node
async function callWithRetry(fn) {
  for (let attempt = 0; attempt < 6; attempt++) {
    try {
      return await fn();
    } catch (err) {
      if (err.status !== 429) throw err;
      await new Promise(r => setTimeout(r, (2 ** attempt) * 1000 + Math.random() * 1000));
    }
  }
  throw new Error('rate-limited after 6 retries');
}

API_KEY_QUOTA_EXHAUSTED 和 USAGE_LIMIT_EXCEEDED 不要重试 —— 在配额提高或窗口滚动前会持续返回。重试循环里要识别为终态错误。

永久解法

  • 提高 Key 的 RPM/RPH/RPD:在 /keys 调整,最快。
  • 多 Key 分流:高扇出场景在客户端做负载均衡。
  • 充值:碰到 INSUFFICIENT_BALANCE(402)就充值,相关但不是 429。

下一步

Key 限制

配置 RPM、模型白名单、IP 白名单、过期、配额。

用量明细

在触限之前观察消耗与峰值。

Key 被冻结或撤销

当 429 升级为 403/401。

常见 HTTP 错误

400 / 401 / 403 / 404 / 429 / 5xx 响应的速查表,以及对应的修复方法。

Key 被冻结或撤销

昨天还能用的 Key 今天突然失效 —— 原因与恢复方式。

目录

三种来源客户端:退避重试永久解法下一步