API 重试与退避策略(指数退避、抖动、幂等键与错误分类)概述合理的重试可提升成功率,但不当重试会导致雪崩。本文给出参数化退避与幂等保障。关键实践与参数重试条件:网络错误、超时、`5xx`、`429`;避免对业务性 `4xx` 重试。指数退避:`base=100ms`、`factor=2`、`max=5 重试`;加入随机抖动 `±20%`。幂等键:在请求头/体传递 `Idempotency-Key`,服务端以窗口(如 24h)去重。上限与超时:设定单次请求超时(如 3s)与整体预算(如 10s)。示例(伪代码)retry: attempts: 5 base_ms: 100 factor: 2 jitter_ratio: 0.2 retry_on: [5xx, 429, timeout, network] idempotency: key_header: Idempotency-Key window_hours: 24 验证方法压测模拟限流与间歇性故障,观察重试分布与成功率。日志标记幂等键命中;统计重复提交与窗口命中率。监控尾延迟与错误比重,评估退避参数对稳定性的影响。注意事项与网关限流协同;避免同步重试形成尖峰。对非幂等操作必须要求幂等键;或通过锁/队列序列化。客户端与服务端需要一致的超时与预算管理。

发表评论 取消回复