SpringCloud组件之Hystrix熔断器0906

熔断器就相当于生活中的保险丝,避免电流电流过大而烧掉整个电器,是一种保护机制。

比如A服务的X功能依赖于B服务的某个接口,当B服务的这个接口因为网络延迟响应慢或其他因素不可用,势必会造成A服务的X功能不可用,进而导致整个A服务不可用(线程被大量占用),加入熔断机制后,在这种情况下,A服务不再请求B的接口,从而避免产生整个服务的雪崩。

image.png

在股票中熔断也是类似的意思。当某一只股票下跌额超过10%时,就会触发跌停,这个时候不能再继续下跌,避免因为一个股票下跌过多,造成整个股票市场的恐慌。

Hystrix特性
1.断路器机制
当Hystrix Command请求后端服务失败数量超过一定比例(默认50%), 断路器会切换到开路状态(Open).这时所有请求会直接失败而不会发送到后端服务.断路器保持在开路状态一段时间后(默认5秒), 自动切换到半开路状态(HALF-OPEN).这时会判断下一次请求的返回情况,如果请求成功,断路器切回闭路状态(CLOSED), 否则重新切换到开路状态(OPEN)


image.png

2.Fallback
Fallback相当于是降级操作.对于查询操作,我们可以实现一个fallback方法,当请求后端服务出现异常的时候,可以使用fallback方法返回的值.fallback方法的返回值一般是设置的默认值或者来自缓存。


image.png

3.资源隔离
主要通过线程池来实现资源隔离.通常在使用的时候我们会根据调用的远程服务划分出多个线程池.例如调用产品服务的Command放入A线程池, 调用账户服务的Command放入B线程池.这样做的主要优点是运行环境被隔离开了


image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。