Hystrix断路器在微服务架构SpringCloud场景中应用详解

Hystrix是什么?

在分布式环境中,许多服务依赖项中的一些将不可避免地失败。Hystrix是一个库,通过添加延迟容差和容错逻辑来帮助您控制这些分布式服务之间的交互。Hystrix通过隔离服务之间的访问点,停止其间的级联故障以及提供回退选项,从而提高系统的整体弹性。
文章篇幅过长。感兴趣的朋友可以提前收藏加关注,后续会有类似文章更新。分享一下个人整理的架构进阶学习路线以及学习资料,需要的朋友可以自行领取:Java高级架构学习资料分享+架构师成长之路​
Hystrix旨在执行以下操作:
1、对通过第三方客户端库访问(通常通过网络)的依赖关系提供保护并控制延迟和故障。
2、隔离复杂分布式系统中的级联故障。
3、快速发现故障,尽快恢复。
4、回退,尽可能优雅的降级
5、启用近实时监控、警报和操作控制

为什么使用Hystrix?

大型分布式系统中,一个客户端或者服务依赖外部服务,如果一个服务宕了,那么由于我们设置了服务调用系统超时时间,势必会影响相应时间,在高并发的情况下大多数服务器的线程池就出现阻塞(BLOCK),影响整个线上服务的稳定性。
当一切都正常时,看起来是这样:
在这里插入图片描述
当后端服务系统中的一个宕掉时,整个用户请求:
在这里插入图片描述
当多个客户端调用同一个异常服务的时候,出现的情况是:
在这里插入图片描述
三:Hystrix解决什么问题?
分布式架构中的应用程序具有几十个依赖关系,每个依赖关系在某个时刻将不可避免的出现异常。如果应用程序不与这些外部故障隔离,则可能出现线程池阻塞,引起系统雪崩。
例如,对于依赖30个服务的应用程序,每个服务的正常运行时间为99.99%,您可以:
99.99%的30次方 = 99.7%正常运行时间
0.3%的10亿次请求= 3,000,000次故障
2+小时宕机/月,即使所有依赖关系正常运行时间。
当使用Hystrix进行熔断后,每个依赖关系彼此隔离了,限制了当发生延迟时的阻塞。
在这里插入图片描述
四:Hystrix结合Feign使用
创建一个工程eureka_feign_hystrix_client

<dependencies>
     <dependency>
       <groupId>org.springframework.cloud</groupId>
       <artifactId>spring-cloud-starter-feign</artifactId>
     </dependency>
     <dependency>
       <groupId>org.springframework.cloud</groupId>
       <artifactId>spring
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值