SpringCloud入门实战(七)-Hystrix入门简介

这篇具有很好参考价值的文章主要介绍了SpringCloud入门实战(七)-Hystrix入门简介。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

📝 学技术、更要掌握学习的方法,一起学习,让进步发生
👩🏻 作者:一只IT攻城狮 。
💐学习建议:1、养成习惯,学习java的任何一个技术,都可以先去官网先看看,更准确、更专业。
💐学习建议:2、然后记住每个技术最关键的特性(通常一句话或者几个字),从主线入手,由浅入深学习。
❤️ 《SpringCloud入门实战系列》解锁SpringCloud主流组件入门应用及关键特性。带你了解SpringCloud主流组件,是如何一战解决微服务诸多难题的。项目demo:源码地址

👉🏻 SpringCloud 入门实战系列不迷路 👈🏻 :

  • SpringCloud 入门实战(一)什么是SpringCloud?
  • SpringCloud 入门实战(二)-SpringCloud项目搭建
  • SpringCloud 入门实战(三)-Eureka注册中心集成
  • SpringCloud入门 实战(四)-Zookeeper、Consul注册中心集成
  • SpringCloud入门实战(五)-Ribbon负载均衡集成
  • SpringCloud入门实战(六)-OpenFeign服务调用集成
  • SpringCloud入门实战(七)-Hystrix入门简介
  • SpringCloud入门实战(七)-Hystrix服务降级
  • SpringCloud入门实战(七)-Hystrix服务熔断
  • SpringCloud入门实战(七)-Hystrix服务限流
  • SpringCloud入门实战(七)-Hystrix Dashboard图形化监控
    SpringCloud入门实战(七)-Hystrix入门简介

一、Hystrix是什么

老规矩,官网:Hystrix官网。Hystrix关键特性:服务降级、服务熔断、服务限流。
Hystrix是一个用于处理分布式系统的延迟容错的开源库,在分布式系统用,许多依赖不可避免的会调用失败,比如超时、异常等。Hystrix能够保证在一个依赖出问题的情况下,不会导致整体服务失败,避免级联故障,以提高分布式系统的弹性。
"断路器”本身是一种开关装置,当某个服务单元发生故障之后,通过断路器的故障监控,向调用方返回一个符合预期的、可处理的相应(FallBack),而不是长时间的等待或者抛出调用方无法处理的异常,这样就保证了服务调用方的线程不会被长时间、不必更地占用,从而避免了故障在分布式系统中的蔓延,乃至雪崩。

怎么样,是不是关于Hystrix是什么,怎么学官网是不是清楚明了。

SpringCloud入门实战(七)-Hystrix入门简介

另外我们关注到Hystrix也停更了,我们知道任何技术停更,也相应的有其他不停更技术的相似替代,Sentinel也要安排学起来了!

SpringCloud入门实战(七)-Hystrix入门简介

Tip:不管学习哪个技术,个人还是建议要学会看官网,那是最准确清楚的。

二、Hystrix的用途

为通过第三方客户端库访问(通常通过网络)的依赖关系提供保护和控制延迟和故障。

停止复杂分布式系统中的级联故障。

故障快速恢复。

尽可能后退并优雅地降级。

实现近乎实时的监控、警报和操作控制。

三、Hystrix的设计原则

防止任何单个依赖项用完所有容器(如Tomcat)用户线程。

减少负载并快速故障,而不是排队。

在可行的情况下提供回退,以保护用户免受故障的影响。

使用隔离技术(如断路器模式)来限制任何一种依赖关系的影响。

通过近乎实时的指标、监控和警报优化发现时间

通过低延迟传播配置更改和支持Hystrix大多数方面的动态属性更改来优化恢复时间,使您能够通过低延迟反馈回路进行实时操作修改。

防止在整个依赖客户端执行过程中发生故障,而不仅仅是在网络流量中。

四、Hystrix重要概念

SpringCloud入门实战(七)-Hystrix入门简介

五、Hystrix实战案例

1、准备项目

新建springcloud-hystrix工程,以单机版注册中心为例,陆续建module搭建环境。
环境搭建参考《SpringCloud入门实战系列》前几篇文章。

SpringCloud入门实战(七)-Hystrix入门简介

2、服务降级

服务降级:也就是假设对方系统不可用了,向调用方返回一个符合预期的,可备选的响应。比如我们常见的“服务器忙,请稍后重试!”、“系统开小差,请稍后再试!”、“您的内容飞到了外太空…”等,超时不再等待,出错有兜底方案。不用客户等待并立刻返回一个友好的提示,这就是服务降级。

更多内容参看:SpringCloud入门实战(七)-Hystrix服务降级

3、服务熔断

熔断机制是应对雪崩效应的一种微服务链路保护机制。当扇出链路的某个微服务出错不可用或者响应时间太长时会进行服务的降级,进而熔断该节点微服务的调用,快速返回错误的响应信息。当检测到该节点微服务调用响应正常后,恢复调用链路

更多内容参看:SpringCloud入门实战(七)-Hystrix服务熔断

4、服务限流

通过线程池或者信号量判断是否已满,超出容量的请求直接降级,以达到限流的作用。

更多内容参看:SpringCloud入门实战(七)-Hystrix服务限流

六、工作流程

1、官网流程图

SpringCloud入门实战(七)-Hystrix入门简介
翻译过来就是:

SpringCloud入门实战(七)-Hystrix入门简介

2、流程说明

1)每次调用创建一个新的HystrixCommand,把依赖调用封装在run()方法中.
2)执行execute()/queue做同步或异步调用.
3)当前调用是否已被缓存,是则直接返回结果,否则进入步骤 4
4)判断熔断器(circuit-breaker)是否打开,如果打开跳到步骤 8,进行降级策略,如果关闭进入步骤 5
5)判断线程池/队列/信号量是否跑满,如果跑满进入降级步骤8,否则继续后续步骤 6
6)调用HystrixCommand的run方法.运行依赖逻辑
调用是否出现异常,否:继续,是进入步骤8,
调用是否超时,否:返回调用结果,是进入步骤8

搜集5、6步骤所有的运行状态(成功, 失败, 拒绝,超时)上报给熔断器,用于统计从而判断熔断器状态
getFallback()降级逻辑.四种触发getFallback调用情况(图中步骤8的箭头来源):返回执行成功结果文章来源地址https://www.toymoban.com/news/detail-448364.html

3、Hystrix源码总结

  • 采用了AOP的方式来对方法进行了增强
  • 采用了大量的RxJava响应式编程,利用了Future+线程池的方法进行了大量的异步
  • 涉及到了滑动窗口的设计,来进行统计失败率(到Sentinel再仔细讲述)

到了这里,关于SpringCloud入门实战(七)-Hystrix入门简介的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SpringCloud学习笔记(十一)_Hystrix仪表盘

    我们来看一下如何使用它吧 1.引入依赖 | —|— hystrix依赖主要是hystrix核心功能依赖,dashboard是为我们提供仪表盘面板的页面功能的,actuator是用来暴露dashboard所需要的端口的。 2.启用hystrix仪表盘 在启动类增加注解@EnableHystrixDashboard。 | —|— 3.修改actuator配置 默认的时候actu

    2024年02月11日
    浏览(40)
  • 微服务+springcloud+springcloud alibaba学习笔记【Hystrix(豪猪哥)的使用】(6/9)

    前几章,我们讲解了Eureka注册中心、Ribbon和OpenFeign服务调用框架;今天开始讲一个分布式微服务项目中很重要的内容Hytrix服务降级框架。 尽管Hytrix官网停止更新了,但是Hytrix的设计理念和思想非常优秀,其他服务降级框架的设计都是借鉴于它,可以说它是所有分布式微服务项

    2023年04月20日
    浏览(47)
  • SpringCloud源码系列之(Ribbon、Hystrix超时正确配置)

    这块的代码debug了一个礼拜,一开始看Fegin创建源码的时候没注意到,是基于RxJava的响应式编程。分析栈桢的时候,有很多异步栈桢。由于只是想搞清楚如下配置的生效时机、以及失效情况,期间还看了一堆与此无关的源码,真的头大 先贴一下正确的超时配置 服务降级流程:

    2024年01月19日
    浏览(37)
  • SpringCloud-Hystrix服务熔断与降级工作原理&源码

    在微服务架构中,根据业务来拆分成一个个的服务,服务与服务之间可以相互调用(RPC),在Spring Cloud可以用RestTemplate+Ribbon和Feign来调用。为了保证其高可用,单个服务通常会集群部署。由于网络原因或者自身的原因,服务并不能保证100%可用,如果单个服务出现问题,调用这

    2024年02月14日
    浏览(53)
  • springcloud3 hystrix实现服务降级的案例配置2

    \\\"服务器忙,请稍后在试\\\"不让客户达等待,立即返回一个友好的提示。 1.程序运行异常; 2.超时; 3.服务熔断触发服务降级; 4.线程池/信号量打满也会导致服务降级 2.1.1 pom文件 2.1.2 设置降级规则 代码  2.1.3 开启hystrix熔断 添加:@EnableHystrix 注解 2.2.1 pom文件 2.2.2 设置降级规

    2024年02月12日
    浏览(38)
  • Springcloud之Feign、Hystrix、Ribbon如何设置超时时间

    我们在微服务调用服务的时候,会使用hystrix、feign和ribbon,比如有一个实例发生了故障而该情况还没有被服务治理机制及时的发现和摘除,这时候客户端访问该节点的时候自然会失败。 所以,为了构建更为健壮的应用系统,我们希望当请求失败的时候能够有一定策略的重试机

    2024年02月08日
    浏览(62)
  • SpringCloud《Eureka、Ribbon、Feign、Hystrix、Zuul》作用简单介绍

    SpringCloud是一个全家桶,包含多个组件。 本文主要介绍几个重要组件,也就是Eureka、Ribbon、Feign、Hystrix、Zuul这几个组件。 业务流程,支付订单功能 订单服务改变为已支付 订单服务调用库存服务,扣减库存 订单服务调用仓储服务,通知仓储发货 订单服务调用积分服务,增加

    2024年02月14日
    浏览(41)
  • SpringCloud.04.熔断器Hystrix( Spring Cloud Alibaba 熔断(Sentinel))

    目录 熔断器概述 使用Sentinel工具 什么是Sentinel 微服务集成Sentinel 配置provider文件,在里面加入有关控制台的配置 实现一个接口的限流 基本概念 重要功能 Sentinel规则 流控规则 简单配置 配置流控模式 配置流控效果 降级规则 @SentinelResource的使用 Feign整合Sentinel 由于Hystrix已经停

    2024年01月19日
    浏览(44)
  • SpringCloud 微服务系列——【服务间的通信方式、OpenFeign、Hystrix组件使用】

    ✅作者简介:2022年 博客新星 第八 。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏:SpringCloud 微服务学习专栏 ✨特色专栏:国学周更-心性养成之路 🥭本文内容:SpringCloud 微服

    2023年04月24日
    浏览(42)
  • SpringCloud-Hystrix服务熔断与降级工作原理&源码 | 京东物流技术团队

    在微服务架构中,根据业务来拆分成一个个的服务,服务与服务之间可以相互调用(RPC),在Spring Cloud可以用RestTemplate+Ribbon和Feign来调用。为了保证其高可用,单个服务通常会集群部署。由于网络原因或者自身的原因,服务并不能保证100%可用,如果单个服务出现问题,调用这

    2024年02月14日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包