目录
Hystrix做什么的?
一句话概括:用于隔离服务间的线程,阻止级联失败(防止雪崩)
如何理解这句话:
例如: 微服务
I
发生异常,请求阻塞,用户请求就不会得到响应,则
tomcat
的这个线程不会释放,于是越来越多的用户请求到来,越来越多的线程会阻塞;当服务请求线程数达到上限,就会导致其他服务所有服务不可用,形成雪崩。
使用Hystrix,它会为每个服务建立线程池并分配线程,I线程池已满就会停止对该服务的调用,不会占用其他服务的线程,实现线程隔离。
服务降级:
为了不然用户无期限的等待,如果发生线程池已满,或请求超时,会进行服务降级,返回自定义的fallback方法,给用户一个友好提示。
服务熔断:
只要使用了Hystrix,服务熔断默认是关闭,且
默认失败比例的阈值是
50%
,请求次数最少不低于
20
次。达到这个阈值就会自动开启服务熔断,默认5s后,熔断进入半开状态,如果请求都健康了,则会关闭服务熔断。