指数退避机制通过每次将延迟时间翻倍(0.5 秒、1 秒、2 秒、4 秒)来增加重试间隔,直至达到上限,从而为负载过重的服务器提供恢复空间。抖动机制则使每次延迟时间随机化,因为如果没有抖动,所有在同一时刻失败的客户端都会在同一时刻重试,从而重现导致失败的峰值。
典型的策略是:等待介于零和基数 × 2^尝试次数之间的随机时间(有最大值限制),并在尝试次数或总时间达到固定值后放弃。仅对可以安全重试的操作(幂等方法或受幂等密钥保护的写入操作)进行重试,并且仅对可能为瞬态的故障(超时、429、502、503、504)进行重试。
重试次数越多,可靠性越高。但无限制的重试会加剧故障:每一层重试三次都会增加下一层的负载。重试预算、上限和断路器的存在,正是因为重试本身也是一种故障源。
使用 PUT /faults/v1/config配置故障注入 API — 例如 failureRate 为 0.5,状态为 503 — 然后反复调用 GET /faults/v1/target来观察重试策略如何应对不稳定的依赖项。
所有术语 · 测试技巧 · 全部 39 个模拟 REST API
最后更新时间