模型供应商故障时自动切换
当单个上游供应商返回 5xx 或超时时,你的应用不该直接挂掉。Router One 是一个 OpenAI 兼容的 LLM API 网关,会在同一模型族内自动切换到下一个健康供应商,并把路由与故障转移决策记录在每请求级 Trace 中,让你清楚看到实际发生了什么。一个端点接入 25+ 支持模型,全球与中国大陆均可访问。
故障转移带来的三件事
限流应对(429 / 529)
当某条路由过载并返回 429 或 529 时,智能路由会重试,并在存在健康的同族路由时切换过去。该决策会记录在 Trace 中——只要有健康路由可用,你看到的是一次重试,而不是一个失败的请求。
上游故障转移(5xx / 超时)
上游 5xx 错误和超时会切换到同一模型的下一个健康供应商。这是当前已上线的核心路径:一个请求、多个候选、在下一条健康路由上自动重试。
可见性(Trace 展示路径)
每个请求都有一条 Trace,包含模型、供应商、token、花费、耗时、状态以及实际走的路由/故障转移路径。当发生故障转移时,你能看到最终是哪条路由完成了响应、为什么跳过了第一条。
什么会触发故障转移
故障转移由请求所发往的那条路由的健康状况驱动。以下两种情况会让 Router One 转向同一模型族中的下一个健康候选:
上游 5xx 或超时
500 级错误或连接/读取超时会将该路由对本次请求标记为不健康,并在下一个健康供应商上重试。此能力已上线。
过载 / 限流(429、529)
当延迟飙升或错误率升高——包括 429 与 529 过载响应——智能路由会重试,并在存在健康的同族路由时切换过去。决策会体现在 Trace 中。
重试的概念
从概念上看,一次调用会按顺序遍历该模型族的健康候选列表,并返回第一个成功的结果。你只发一个请求,重试循环由 Router One 处理。
// 一个请求 -> 第一个成功的健康候选 for (const route of healthyRoutes(modelFamily)) { try { return await call(route, request); } catch (e) { if (isRetryable(e)) continue; // 5xx, timeout, 429, 529 throw e; } }
竞品往往覆盖不足的可靠性
| 能力 | Router One | 单一供应商 SDK |
|---|---|---|
| 上游 5xx / 超时故障转移 | 自动在下一个健康供应商上重试 | 请求失败;重试需自行实现 |
| 429 / 529 过载处理 | 在有健康同族路由时重试/切换 | 把错误直接返回给应用 |
| 每请求级路由 Trace | 展示路由 + 故障转移路径、状态、花费、耗时 | 无 |
| 中国大陆可访问 | 面向中国网络优化,并有公开延迟基准 | 常被屏蔽或不稳定 |
| 一个端点,多种模型 | 一个 OpenAI 兼容 URL 接入 25+ 支持模型 | 单一供应商、单一 API |
全球与中国大陆均可靠访问
可靠性不只是处理供应商错误——可达性同样重要。Router One 的端点在全球和中国大陆网络下均可访问。基于 2026-05-15 更新的中国延迟基准测试,Router One 在北京、上海、深圳的 p50 延迟为 110-130ms;实际表现会随网络和地区变化。
查看中国延迟基准测试 ->常见问题
什么会触发故障转移?
请求所发往路由上的上游 5xx 错误或超时,会触发在同一模型的下一个健康供应商上自动重试。过载响应(429、529)以及延迟或错误率的飙升,也会让智能路由在存在健康同族路由时重试并切换过去。
故障转移会跨模型族吗?
不会。故障转移只在同一模型族的健康路由之间切换,以保证响应与你请求的模型一致,不会把 GPT 悄悄换成 Claude 或 Gemini。如果你需要跨族选择,那是 model="auto" 智能路由的职责,是一个独立且显式的选项。
如何查看是哪条路由完成了我的请求?
每个请求都会在实时面板生成一条 Trace,包含模型、供应商、token、花费、耗时、状态以及路由/故障转移路径。发生故障转移时,Trace 会显示最终是哪条路由完成的响应。
故障转移会增加延迟吗?
重试会在健康路由响应之前先消耗失败那次尝试的时间,因此发生故障转移的请求会比一次干净的首试成功更慢。每请求级 Trace 会报告实际所走路径的耗时,便于你衡量真实成本。
限流怎么办?
当某条路由返回 429 或 529 时,只要存在健康的同族路由,智能路由就会重试并切换过去,决策也会记录在 Trace 中。我们不承诺零停机——如果所有同族路由同时过载,请求仍可能返回错误,Trace 会显示原因。
相关页面
改一个 base URL,即可获得自动故障转移
免费开始