Hystrix功能介绍

1、什么是Hystrix
    在一个分布式系统中,必然会有部分系统的调用会失败。Hystrix是一个通过添加超时容错和失败容错逻辑来帮助你控制这些分布式系统的交互。Hystrix通过隔离服务之间的访问,阻止他们之间的级联故障以及提供后背选项来实现这些,所有新而这些都用来提高系统的整体弹性。

2、Hystrix用来做什么
    Hystrix被设计用来解决一下几个方面

通过第三方(一般来源网络)的调用,给与保护和控制延迟和失败。

在复杂的分布式系统中复制级联失败。

快速失败和修复。

在可能的情况下,回滚挥着优雅的失败。

实现几乎实时监控,警报和操作控制。

3、Hystrix解决了什么问题
    复杂的分布式体系结构中的应用程序具有许多依赖关系,每个依赖关系都会在某些时候不可避免的失败。如果主机应用程序未与这些外部的故障隔离,那么可能会被这些故障拖垮。

例如:一个依赖30个SOA服务的系统,每个服务99.99%可用。
 
99.99%的30次方 ≈ 99.7%
 
0.3% 意味着一亿次请求 会有 3,000,00次失败
 
换算成时间大约每月有2个小时服务不稳定.
 
随着服务依赖数量的变多,服务不稳定的概率会成指数性提高.
 
而实际中可能更糟糕。
 

4、Hystrix设计模式
设计详解(命令模式)

  4.1、流程图

 (可点击查看大图)

流程说明

构造一个HystrixCommand或者HystrixObserverCommand对象,把需要调用的依赖放在run()中

执行execute/queue做同步或者异步执行

是否做了缓存

熔断是否打开

线程池/队列/信号量是否满了

调用run()或者construct()

计算熔断健康度(成功,失败,拒绝,超时)的数据,上报给熔断器,用于统计从而判断熔断器状态,可以根据这些数据来决定是否进行熔断,例如:错误率在80%以上,接口等待超过预定的时间等。

获取Fallback,如果fallback失败,系统报错,所以要尽量防止fallback报错,当然也可以在fallback上加上一层fallback

返回执行结果
参考:https://github.com/Netflix/Hystrix/wiki#what

 https://blog.csdn.net/hzq472583006/article/details/81110443

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值