全部文章
工程实践

上游故障如何自动切换?拆解 99.99% 可用率的实现

原型内容预览:文中数据、作者信息、产品声明及 API 示例尚待核验,示例暂不能作为已确认的接入说明。

上游服务出问题时,网关如何接住请求?从健康检查、熔断、热备到降级策略,拆解自动故障切换的实现方式。

上游供应商各自的可用率约为 99.9%,网关如何在此基础上实现 99.99%?关键在于让不同供应商的故障彼此隔离,持续检查服务健康状态,并由路由层在个位数毫秒内决定请求该发往哪里。

健康检查

我们每两秒向各个上游端点发送一次模拟请求,检查实际推理链路,而不只看供应商的状态页。检查内容包括 P50、P99 延迟、错误率,以及响应格式是否正确。延迟开始偏离正常范围,往往比报错更早出现,因此服务尚未返回错误时,就可能被标记为降级。

熔断器如何分流请求

  • 关闭状态:按正常规则路由,所有流量都可以通过。
  • 半开状态:用 5% 的流量检查服务是否恢复,其余流量发往备用端点。
  • 打开状态:停止向该端点发送流量,连续 30 次健康探测成功后才重新开放。

为什么需要热备

如果故障发生后才连接备用端点,请求还要等待建连,以及供应商可能出现的冷启动。我们会提前与备用端点保持持久连接,在切换时将正在处理的请求重新发送过去。这样,客户端收到的是一次稍慢的响应,而不是错误。

理想的故障切换不需要用户介入。路由层增加的延迟中位数低于 4 毫秒;如果发生完整切换,受影响请求会额外等待 180–400 毫秒。

降级策略

如果同等能力的模型都不可用,可以选择切换到更便宜的档位、返回过期缓存,或直接返回失败。对于一些 Agent 任务,错误答案的代价比没有答案更高;这时,默认快速失败比悄悄降低回答质量更合适。

更多工程实践文章

Gemini 4 Argon API 接入指南

2026年10月15日 · 阅读 19 分钟

Jev 详解:如何为生产环境构建可靠、带类型的 AI 决策

2026年10月10日 · 阅读 20 分钟

什么是 LLM API?给开发者的实用指南

2026年9月16日 · 阅读 11 分钟