#容错配置最佳实践
容错机制的配置是实践中的难点。本节总结容错配置的最佳实践。
#配置检查清单
# 容错配置检查清单
resilience_checklist:
超时配置:
- 所有 HTTP 客户端都配置了超时
- 超时值基于业务需求而非默认值
- 超时有层次:网关 > 服务 > 数据库
重试配置:
- 重试次数不超过 3 次
- 使用指数退避策略
- 添加随机抖动
- 只对瞬时故障重试
熔断器配置:
- 每个依赖服务独立配置
- 失败率阈值合理
- 熔断器状态有监控
限流配置:
- 限流阈值基于容量规划
- 多维度限流
- 限流有友好提示
降级配置:
- 降级逻辑已测试
- 降级返回有意义的数据
- 降级有监控和告警#配置示例
resilience-config.yml
# 容错配置最佳实践示例
resilience:
# 超时配置
timeouts:
default:
connect: 3000
read: 5000
user-service:
connect: 5000
read: 3000
payment-service:
connect: 3000
read: 3000
# 重试配置
retry:
default:
max-attempts: 3
backoff:
type: exponential
base-delay: 1000
multiplier: 2
jitter: true
# 熔断器配置
circuit-breaker:
default:
failure-rate-threshold: 50
wait-duration: 60s
sliding-window-size: 10
payment-service:
failure-rate-threshold: 30
wait-duration: 120s
# 限流配置
rate-limit:
global:
qps: 10000
user:
qps: 100
api:
"/api/order": 1000
"/api/payment": 100#常见配置问题
| 问题 | 错误配置 | 正确配置 |
|---|---|---|
| 超时太长 | timeout: 30000 | timeout: 5000 |
| 重试太多 | maxAttempts: 10 | maxAttempts: 3 |
| 无退避 | 重试间隔相同 | 指数退避 |
| 无熔断器 | 只依赖超时 | 超时 + 熔断器 |
| 无降级 | 异常直接抛给用户 | 降级返回友好提示 |
#本章总结
核心要点:
- 容错配置要有检查清单:避免遗漏
- 每个依赖要单独配置:不能一刀切
- 配置要基于实际数据:基于压测和历史数据
- 配置要可动态调整:运行时可以修改
- 配置要监控和告警:知道什么时候触发容错