其他分享
首页 > 其他分享> > Hystrix熔断器

Hystrix熔断器

作者:互联网

一、Hystrix简介

Hystrix(豪猪----->刺),宣言“defend your app”是由Netflix开源的一个 延迟和容错库,用于隔离访问远程系统、服务或者第三方库,防止级联失败,从而 提升系统的可用性与容错性。Hystrix主要通过以下几点实现延迟和容错。

二、Hystrix舱壁模式(线程池隔离策略)

image-20220321011124978

如果不进行任何设置,所有熔断方法使用一个Hystrix线程池(10个线程),那么这 样的话会导致问题,这个问题并不是扇出链路微服务不可用导致的,而是我们的线 程机制导致的,如果方法A的请求把10个线程都用了,方法2请求处理的时候压根都 没法去访问B,因为没有线程可用,并不是B服务不可用。

image-20220321011205285

为了避免问题服务请求过多导致正常服务无法访问,Hystrix 不是采用增加线程数, 而是单独的为每一个控制方法创建一个线程池的方式,这种模式叫做“舱壁模式",也 是线程隔离的手段。

三、Hystrix工作流程与高级应用

image-20220321011234980

 
/**
* 8秒钟内,请求次数达到2个,并且失败率在50%以上,就跳闸 * 跳闸后活动窗口设置为3s
*/
    @HystrixCommand(
            commandProperties = {
                    @HystrixProperty(name =
"metrics.rollingStats.timeInMilliseconds",value = "8000"),
                    @HystrixProperty(name =
"circuitBreaker.requestVolumeThreshold",value = "2"),
                    @HystrixProperty(name =
"circuitBreaker.errorThresholdPercentage",value = "50"),
                    @HystrixProperty(name =
"circuitBreaker.sleepWindowInMilliseconds",value = "3000")
} )

标签:跳闸,服务,请求,Hystrix,线程,熔断器,name
来源: https://www.cnblogs.com/wuzhixuan/p/16032986.html