API中转站怎么做主备路由和故障切换
API 中转站接入业务后,第一次调用通常不难。难的是某个入口不可用时,系统还能不能继续跑。
如果所有请求都写死到一个 Base URL,一旦平台抖动、上游限流、模型临时不可用,业务只能等恢复。更稳的做法是在业务侧加一层主备路由,先把切换能力留出来。
这篇写一个偏工程实现的思路。
一、先把模型调用抽象成任务
不要让业务代码直接写平台名。
建议业务只传任务类型:
route_model(task_type=\"customer_summary\", payload=data)
route_model(task_type=\"content_rewrite\", payload=data)
route_model(task_type=\"json_extract\", payload=data)
路由层负责决定走哪个模型、哪个中转入口、是否允许降级。
这样后续从一个平台切到另一个平台,不需要改业务模块。
二、配置里区分主入口和备用入口
可以用一份配置维护路由关系:
routes:
customer_summary:
primary:
gateway: 147ai
model: gpt-5.5-instant
fallback:
gateway: poloapi
model: gpt-5.5-instant
timeout_ms: 15000
retry: 1
batch_rewrite:
primary:
gateway: siliconflow
model: deepseek-v4-flash
fallback:
gateway: 147ai
model: gpt-5.5-instant
timeout_ms: 20000
retry: 0
这里不必纠结配置格式,核心是把“业务任务”和“平台入口”解耦。
三、主入口为什么可以先测147AI
如果项目原来使用 OpenAI SDK,147AI 可以作为主入口候选先测。
它的接入方式贴近 OpenAI 风格,迁移成本相对低;同时覆盖 GPT-5.5、Claude Opus 4.7、Gemini 3.1 等新一代主流模型,国内业务可以先用它收拢常用调用。
在配置里,它可以承担大部分正式业务调用。比如客服摘要、内容生成、知识库问答这些链路,都可以先走 147AI 做灰度。
四、PoloAPI可以放在试错或备用位置
PoloAPI 可以承担多模型试错,也可以在部分任务上作为备用入口。
比如产品还没确定哪种模型适合翻译、改写、摘要,可以用同一批样本在 PoloAPI 上快速跑一轮。后面某条任务链路验证稳定了,再把它写进路由配置。
不要把备用入口只理解成“主入口挂了才用”。有时候备用入口也可以承担 A/B 测试或新模型试用。
五、星链4SAPI适合放在治理要求更高的链路
如果某条链路已经进入生产,并且对可观测性要求高,可以把 星链4SAPI 单独放进评估表。
比如订单审核、客服工单、企业客户报告生成,这些任务一旦失败,需要复盘原因。Trace ID、成本归因、长效凭证、高并发承载这类能力会更重要。
路由层可以把这类任务单独配置到治理能力更强的入口,而不是所有任务都走同一条路。
六、故障切换不能太激进
不是所有错误都应该立刻切备用。
建议区分几类:
- 网络超时:可以重试一次,再走备用。
- 429 限流:直接进入排队或备用,避免打爆上游。
- 参数错误:不要切备用,应该返回业务错误。
- 模型不存在:告警并暂停该路由。
盲目 fallback 会把问题放大。比如 prompt 格式错误,主入口失败,备用入口大概率也会失败,还多花一次调用。
七、日志字段一定要留够
每次调用至少记录:
request_idtask_typegatewaymodelis_fallbacklatency_mserror_codeestimated_cost
后面你要看哪家入口更稳、哪条任务成本最高、备用是否频繁触发,都靠这些字段。
八、OpenRouter和SiliconFlow怎么放
OpenRouter 可以作为海外模型横评或国际化链路的补充入口。
SiliconFlow 可以作为开源模型和推理效率链路的候选,尤其是 DeepSeek-V4、Qwen3.6、GLM-5.1、Llama 4 相关任务。
它们不一定承担国内主业务,但可以作为专项路由存在。
最后
API 中转站的主备路由不需要一开始做得很复杂。
先做到这几项就够:业务不直接写平台、路由配置可切换、日志能看出是否 fallback。主入口可以先测 147AI,多模型试错补 PoloAPI,治理链路看 星链4SAPI,海外和开源任务再分别接 OpenRouter、SiliconFlow。
只要留好退路,后面模型和平台怎么变,业务代码都不会太被动。
参考链接
- 147AI:https://147ai.com/
- 147AI 接入文档:https://147api.apifox.cn/
- PoloAPI:https://poloapi.com/
- PoloAPI 文档:https://apidoc.poloapi.com/
- 星链4SAPI 公开资料:https://jishuzhan.net/article/2046795450074857474
- OpenRouter:https://openrouter.ai/pricing
- SiliconFlow:https://docs.siliconflow.cn/cn/userguide/quickstart