Hystrix 一些简单概念

一.雪崩效应:

在分布式系统中,服务之间相互依赖,如果一个服务出现了故障或者是网络延迟,在高并发的情况下,会导致线程阻塞,在很短的时间内该服务的线程资源会消耗殆尽,最终导致该服务不可用。由于服务的相互依赖,可能会导致整个系统的不可用,这就是 “雪崩效应”。
为了防止此类事件的发生,分布式消停必然要采取相应的措施,例如: “熔断机制”。

二.Hystrix 的简介:

下面以一张图给大家简单的举个例子:
在这里插入图片描述
如上图所示:
一个微服务系统有很多个服务相互依赖。一个请求通常需要调用多个服务才能完成。如果一个服务不可用,例如网络延迟或者故障,会影响到依赖于这个不可用的范围的其他服务。
当 服务F 因某些原因导致了服务的不可用,来自于用户的请求需要调用 服务F, 由于 服务F 无响应,用户的请求都处于阻塞状态, 在高并发的情况下,短时间内会导致服务器的线程资源消耗殆尽。另外,依赖于 服务F 的其他的服务 ,例如图中的 服务E 、服务G 、服务J,也会等待 服务 F 的响应,处于阻塞状态,导致这些服务的线程资源消耗殆尽,最终呆滞整个系统处于瘫痪的状态,也就是"雪崩效应"。

所以这时引入Hystrix(熔断器)来解决上述情况。
它就和我们平时的生活中的断路器一样,每当线路中有电路发生短路时,为了防止危害,断路器就会开启来切断故障电路,它对电路起到了一种保护作用。
在这里插入图片描述
如上图所示: 当 服务F 挂了之后,那么Hystrix就会触发它的断路器,将与服务F 有关联的用户请求全部断掉,所有的请求都会走那个回退逻辑。(回退逻辑属于 服务F 中的一部分,并不是一个新的模块),这样 就避免了线程一直被阻塞,解决可能出现的 “雪崩” 现象。

三.Hystrix(熔断器) 的工作机制:

在这里插入图片描述
如图所示:
当一个服务的处理用户请求的失败次数在一定时间内(默认是10秒)小于设定的阀值时,熔断器处于关闭状态,服务正常;
当服务处理用户请求的失败次数在第一定时间内(默认是10秒)大于设定的阀值时。说明服务出现了故障,打开了熔断器,这时候所有的请求会执行快速失败,不执行业务逻辑;
当熔断器 处于打开状态, 一段时间后(默认是5秒)会处于 半打开状态,并执行一定数量的请求,剩余的请求会执行快速失败,若执行的请求失败了,则继续打开熔断器;若成功了,则将熔断器关闭。

服务熔断:服务熔断有3种状态,分别是开启,关闭,半熔断
两种使用Hystrix的方式:

  1. 在RestTemplate 和 Ribbon 上 使用 Hystrix
  2. 在Feign 上使用 Hystrix
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘德华一不小心就打代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值