Hystrix基本用法

Hystrix是Netflix的开源项目,用于实现服务的熔断,防止故障扩散。其设计原则包括隔离访问点、快速失败、提供回退方案及熔断监控。工作流程包括熔断器状态机的Closed、Open和Half-Open状态,以及调用流程中的成功、失败、超时等判断。使用Hystrix涉及引入依赖、开启熔断注解和定义@HystrixCommand。
摘要由CSDN通过智能技术生成

Hystrix

Hystrix 是 Netflix公司的一个开源项目,它提供了熔断功能,能够阻止分布式系统中出现联动故障。Hystrix 是通过隔离服务的访问点,阻止联动故障的,并提供了故障的解决方案,从而提高了整个分布式系统的弹性。

Hystrix 的设计原则

防止单个服务的故障耗尽整个服务的Servlet容器(例如 Tomcat)的线程资源。
快速失败机制,如果某个服务出现了故障,则调用该服务的请求快速失败,而不是线程等待。
提供回退(fallback)方案,在请求发生故障时,提供设定好的回退方案。
使用熔断机制,防止故障扩散到其他服务。
提供熔断器的监控组件 Hystrix Dashboard,可以实时监控熔断器的状态。

Hystrix 的工作机制

在这里插入图片描述
当服务的某个API接口失败次数在一定时间内小于设定的阀值时,熔断器处于关闭状态,该API接口正常提供服务。
当该API接口处理请求的失败次数大于设定的阀值时,Hystrix 判定该API接口出现了故障,打开熔断器,此时请求该API接口会执行快速失败的逻辑(即fallback回退的逻辑),不执行业务逻辑,请求的线程不会处于堵塞状态。
处于打开状态的熔断器,一段时间后会处于半打开状态,并将一定数量的请求执行正常逻辑。剩余的请求会执行快速失败,如果执行正常逻辑的请求失败了,则熔断器继续打开;如果成功了,则将熔断器关闭。这样熔断器就具有了自我修复能力。

熔断器:Circuit Breaker

熔断器是位于线程池之前的组件。用户请求某一服务之后,Hystrix会先经过熔断器,此时如果熔断器的状态是打开(跳起),则说明已经熔断,这时将直接进行降级处理,不会继续将请求发到线程池。熔断器相当于在线程池之前的一层屏障。每个熔断器默认维护10个bucket ,每秒创建一个bucket ,每个blucket记录成功,失败,超时,拒绝的次数。当有新的bucket被创建时,最旧的bucket会被抛弃。

熔断器的状态机

Closed:熔断器关闭状态,调用失败次数积累,到了阈值(或一定比例)则启动熔断机制;
Open:熔断器打开状态,此时对下游的调用都内部直接返回错误,不走网络,但设计了一个时钟选项,默认的时钟达到了一定时间(这个时间一般设置成平均故障处理时间,也就是MTTR),到了这个时间,进入半熔断状态;
Half-Open:半熔断状

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值