版本 1.8
xzv2uavs1#
举个例子,statIntervalMs=1000,count=0.1,正常QPS 5000在前10ms中,来了50个请求其中25个失败了这时候会触发降级,其实不应该,因为降级阀值是基于1000ms来说的,但是现在只有一个窗口没有固定的统计时间了,可能是100ms,也可能是300ms
uz75evzq2#
@sczyh30 这个滑动窗口是否太粗, 比如 按照异常数限流1000个异常, statIntervalMs=1min 的规则, 999个异常在一个窗口的后半周期, 还有999个异常在下个窗口的前半周期, 其实在这两个半分周期合并的一分钟内 已经有1998个异常了 ,但是依然无法熔断, 准确性是否太差??
bvuwiixz3#
另外还有一个问题 , 当在一个周期内发生熔断并恢复后(熔断时长小于统计时长),目前看来只是将窗口内的值归零,那么在剩下的统计周期已经不满一个完整的统计周期了,这样统计是否不准确了? 窗口在熔断恢复后是否应该重建?
3条答案
按热度按时间xzv2uavs1#
举个例子,statIntervalMs=1000,count=0.1,正常QPS 5000
在前10ms中,来了50个请求其中25个失败了这时候会触发降级,其实不应该,因为降级阀值是基于1000ms来说的,但是现在只有一个窗口没有固定的统计时间了,可能是100ms,也可能是300ms
uz75evzq2#
@sczyh30 这个滑动窗口是否太粗, 比如 按照异常数限流1000个异常, statIntervalMs=1min 的规则, 999个异常在一个窗口的后半周期, 还有999个异常在下个窗口的前半周期, 其实在这两个半分周期合并的一分钟内 已经有1998个异常了 ,但是依然无法熔断, 准确性是否太差??
bvuwiixz3#
另外还有一个问题 , 当在一个周期内发生熔断并恢复后(熔断时长小于统计时长),目前看来只是将窗口内的值归零,那么在剩下的统计周期已经不满一个完整的统计周期了,这样统计是否不准确了? 窗口在熔断恢复后是否应该重建?