扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
一:什么是Hystrix
站在用户的角度思考问题,与客户深入沟通,找到渭源网站设计与渭源网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:做网站、成都网站建设、企业官网、英文网站、手机端网站、网站推广、国际域名空间、网站空间、企业邮箱。业务覆盖渭源地区。在分布式环境中,许多服务依赖项中的一些将不可避免地失败。Hystrix是一个库,通过添加延迟容差和容错逻辑来帮助您控制这些分布式服务之间的交互。Hystrix通过隔离服务之间的访问点,停止其间的级联故障以及提供回退选项,从而提高系统的整体弹性。
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
pom.xml文件内容
org.springframework.cloud spring-cloud-starter-feign org.springframework.cloud spring-cloud-starter-eureka org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-actuator org.springframework.boot spring-boot-starter-test test org.springframework.cloud spring-cloud-dependencies Brixton.SR5 pom import
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流