---
title: API 重试与退避策略(指数退避、抖动、幂等键与错误分类)
keywords:
- 指数退避
- 抖动
- 幂等键
- 错误分类
- 速率限制
description: 介绍生产环境的重试与退避设计,包含指数退避与抖动、幂等键与错误分类,并给出验证与观测方法。
date: 2025-11-26
categories:
- 应用软件
- 编程开发
---
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
验证方法
- 压测模拟限流与间歇性故障,观察重试分布与成功率。
- 日志标记幂等键命中;统计重复提交与窗口命中率。
- 监控尾延迟与错误比重,评估退避参数对稳定性的影响。
注意事项
- 与网关限流协同;避免同步重试形成尖峰。
- 对非幂等操作必须要求幂等键;或通过锁/队列序列化。
- 客户端与服务端需要一致的超时与预算管理。

发表评论 取消回复