批量任务 50 并发,一半请求 429。
我的退避写的是固定 1 秒重试,结果重试的请求又把上游打满,雪崩。
正确的退避:
- 指数退避:1s、2s、4s、8s
- 加随机抖动,避免所有请求同时重试
- 有上限,比如最多 5 次
- 优先看 Retry-After 头,上游说等多久就等多久
另外:并发数本身要控制。50 并发对很多上游都太高,10-20 更安全。
改完之后 429 降到 2% 以下,整体完成时间反而短了。
教训:越快不代表越早完成,撞墙重试最慢。
主楼- 暂无回复
继续逛逛
批量任务 50 并发,一半请求 429。
我的退避写的是固定 1 秒重试,结果重试的请求又把上游打满,雪崩。
正确的退避:
另外:并发数本身要控制。50 并发对很多上游都太高,10-20 更安全。
改完之后 429 降到 2% 以下,整体完成时间反而短了。
教训:越快不代表越早完成,撞墙重试最慢。