微服务Hystrix的断路器

 Hystrix的断路器设计,是为防止其他服务故障导致服务雪崩。

Having an open circuit stops cascading failures and allows overwhelmed or failing services time to recover. The fallback can be another Hystrix protected call, static data, or a sensible empty value. Fallbacks may be chained so that the first fallback makes some other business call, which in turn falls back to static data.

 

 Hystrix的断路器 包括三个状态(close 有可用资源,open无可用资源,half-open允许某些流量通过,并关注这些流量的结果,如果出现超时、异常等情况,将进入OPEN状态,如果成功,那么将进入CLOSED状态。)

为了能做到状态能按照指定的顺序来流转,并且是线程安全的,断路器的实现类HystrixCircuitBreakerImpl使用了AtomicReference:private final AtomicReference<Status> status = new AtomicReference<Status>(Status.CLOSED);

1请求是否有缓存,有从缓存中返回

2没有缓存,进入路由判断(短路直接返回failed)

3没有短路,通过发送请求,(超时,执行失败返回failed)(通过线程池统计回路状态,返回给路由)

4返回成功通知观察者。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值