TwKit
正在载入
TwKit

一堆请求同时失败,大家都等一秒再试,下一秒可能又一起撞上。 指数退避让等待时间逐次增长,并设上限。但大家按同一节奏退,重试仍可能扎堆。Jitter 再加一步… · @BaiBtw · TwKit

@BaiBtw

一堆请求同时失败,大家都等一秒再试,下一秒可能又一起撞上。 指数退避让等待时间逐次增长,并设上限。但大家按同一节奏退,重试仍可能扎堆。Jitter 再加一步:把等待时间随机打散。 AWS 的文章比较了三种做法: • Full Jitter:在零到本轮退避上限之间随机等待。 • Equal Jitter:保留一半等待,另一半随机。 • Decorrelated Jitter:根据上一次随机等待,调整下一次的范围。 在文中的乐观并发控制模拟里,100 个客户端竞争同一资源时,Full Jitter 相比不退避,把调用量减少了一半以上。三种随机方案也都有取舍,并非越复杂越好。 这是特定模拟的结果,不是所有接口都能提速一倍。实际落地要分清:退避让请求少来一点,抖动让它们别一起来。 来源:https://aws.amazon.com/blogs/architecture/exponential-backoff-and-jitter/

曝光 20 · 评论 0 · 点赞 0 · 书签 0

查看原帖