2021-03-07 23:10发布
Hystrix需要根据过去一段时间内失败的请求次数来判断是否打开熔断开关,所以它会维护一个时间窗口,并不断向该窗口中累加失败请求次数,在多线程环境下一般会使用AtomicLong,但是Hystrix中使用的是LongAdder。查了一下,发现在Hystrix,Guava,JDK8中都有这个类,应该是Java8中才加到标准库中,其他库要兼容老版本只能自己复制一份了。Hystrix和Java8中的LongAdder具体实现有细微差别,不过整体思路是一样的,下面的分析都是以jdk为准的。
最多设置5个标签!
Hystrix需要根据过去一段时间内失败的请求次数来判断是否打开熔断开关,所以它会维护一个时间窗口,并不断向该窗口中累加失败请求次数,在多线程环境下一般会使用AtomicLong,但是Hystrix中使用的是LongAdder。查了一下,发现在Hystrix,Guava,JDK8中都有这个类,应该是Java8中才加到标准库中,其他库要兼容老版本只能自己复制一份了。Hystrix和Java8中的LongAdder具体实现有细微差别,不过整体思路是一样的,下面的分析都是以jdk为准的。
一周热门 更多>