Files
proxycast/docs/content/02.user-guide/5.resilience.md
T
coso 267bbf75e3 feat: add documentation system with Docus framework
- Add complete documentation structure with 25+ markdown files
- Add introduction, user guide, provider configs, API reference
- Add troubleshooting and development guides
- Add disclaimer for legal use
- Add GitHub Actions workflow for auto-deploying docs to GitHub Pages
- Bump version to v0.11.0
2025-12-17 13:10:58 +08:00

2.9 KiB
Raw Blame History

title, description, navigation
title description navigation
容错配置 重试、超时和故障转移设置
icon
i-heroicons-shield-check

容错配置

容错配置帮助你的应用优雅地处理 API 故障,确保服务稳定性。

重试机制

重试配置

选项 默认值 说明
最大重试次数 3 失败后重试的最大次数
初始延迟 1s 首次重试前的等待时间
最大延迟 30s 重试延迟的上限
退避倍数 2 每次重试延迟的增长倍数

退避策略

第1次重试: 1s
第2次重试: 2s
第3次重试: 4s
...

可重试错误

以下错误会触发重试:

  • 网络超时
  • 连接失败
  • 5xx 服务器错误
  • 429 速率限制

不重试的错误:

  • 4xx 客户端错误(除 429)
  • 认证失败
  • 无效请求

超时设置

超时配置

选项 默认值 说明
连接超时 10s 建立连接的超时时间
请求超时 120s 整个请求的超时时间
流式超时 300s 流式响应的超时时间

按 Provider 配置

可以为不同 Provider 设置不同的超时:

timeouts:
  default:
    connect: 10s
    request: 120s
  kiro-claude:
    request: 180s  # Claude 响应较慢
  gemini-cli:
    request: 60s   # Gemini 响应较快

故障转移

自动故障转移

当主 Provider 失败时,自动切换到备用 Provider:

  1. 主 Provider 请求失败
  2. 检查是否有可用的备用 Provider
  3. 使用备用 Provider 重试请求
  4. 记录故障转移事件

配置故障转移

failover:
  enabled: true
  providers:
    - kiro-claude      # 主 Provider
    - claude-custom    # 备用 Provider 1
    - gemini-cli       # 备用 Provider 2
  maxAttempts: 3       # 最大尝试 Provider 数

故障转移条件

条件 说明
连接失败 无法连接到 Provider
认证失败 Token 过期或无效
速率限制 达到 Provider 限制
服务不可用 Provider 返回 503

熔断器

熔断器状态

状态 说明
关闭 正常工作,请求通过
打开 熔断激活,请求直接失败
半开 尝试恢复,允许部分请求

熔断配置

选项 默认值 说明
失败阈值 5 触发熔断的连续失败次数
恢复时间 30s 熔断后尝试恢复的等待时间
半开请求数 3 半开状态允许的测试请求数

熔断流程

正常 → 连续失败5次 → 熔断打开
熔断打开 → 等待30s → 半开状态
半开状态 → 3次成功 → 恢复正常
半开状态 → 1次失败 → 重新熔断

监控告警

告警条件

  • 错误率超过阈值
  • 延迟超过阈值
  • 熔断器打开
  • 所有 Provider 不可用

告警通知

当前支持:

  • 应用内通知
  • 系统通知(macOS/Windows)