当客户端配置为在放弃之前重试设置的次数后,将导致“重试风暴”,因为在服务的正常操作中会发生数据包丢失,所以需要重试策略。
举个例子:
例如,如果将整个服务扩展到每秒支持80,000个请求并以大约80%的容量运行,那么导致该服务每秒接收101,000个请求的流量高峰将导致其中1,000个请求失败。
当重试策略启动时,您最终会收到额外的1,000多个请求,具体取决于检测到故障的位置,从而将整个服务每秒提高至102,000个请求-从那里,您的服务进入死亡螺旋状,数量翻倍每秒失败的请求数量。
除了在预计的高峰交易之后大量超额提供服务之外,这将是低效的。您可以采用什么策略来避免“重试风暴”?