加载中...
重试模式是一种应对瞬时故障的容错设计模式。当远程调用因网络抖动、临时过载等短暂原因失败时,自动按一定策略重新发起请求,从而提升调用成功率。合理的重试通常配合退避与抖动算法,避免对下游造成二次冲击。

| 类型 | 容错/稳定性模式 |
| 适用故障 | 瞬时性故障 |
| 关键前提 | 操作幂等 |
| 常用算法 | 指数退避+抖动 |
| 常配合 | 超时、断路器、幂等 |
重试模式(Retry Pattern)是一种处理瞬时故障的稳定性设计模式,通过在调用失败后自动重新尝试,来屏蔽网络抖动、连接重置、临时超时等短暂性错误对业务的影响。它是构建弹性分布式系统的基础手段之一。
分布式系统中的故障可分为瞬时故障和持久故障。瞬时故障往往在很短时间内自行恢复,例如网络丢包、下游服务短暂过载或数据库连接被临时回收。对这类错误立即放弃并不划算,恰当的重试能够显著提高整体成功率与用户体验。
重试模式适用于调用远程 API、访问数据库、发送消息队列等存在瞬时故障风险的场景。它常与超时、断路器和幂等设计一同使用:超时限定单次等待,断路器在持续失败时阻断重试,幂等则保证重复请求不会造成重复副作用。
问:所有失败都可以重试吗?答:不能。只有幂等操作且属于瞬时故障时才安全,对非幂等的写操作盲目重试可能导致重复扣款、重复下单等严重问题。
问:为什么要加随机抖动?答:如果大量客户端在同一固定间隔后同时重试,会在下游恢复瞬间形成流量尖峰,抖动能把重试时刻打散,平滑负载。

| 类型 | 容错/稳定性模式 |
| 适用故障 | 瞬时性故障 |
| 关键前提 | 操作幂等 |
| 常用算法 | 指数退避+抖动 |
| 常配合 | 超时、断路器、幂等 |
登录 后参与讨论
暂无讨论,来发表第一条评论吧