首页 > 其他分享 >Spring Cloud全解析:熔断之Hystrix执行流程

Spring Cloud全解析:熔断之Hystrix执行流程

时间:2024-09-11 10:14:28浏览次数:10  
标签:逻辑 调用 run Hystrix Spring 熔断器 fallback 执行 Cloud

Hystrix执行流程

  • 每次调用创建一个新的HystrixCommand,把依赖调用封装在run()方法中
  • 执行execute()/queue做同步或异步调用
  • 判断熔断器(circuit-breaker)是否打开,如果打开则执行fallback进行降级策略,如果关闭继续执行
  • 判断线程池/队列/信号量是否跑满,如果跑满执行fallback进行降级策略,否则继续后续步骤
  • 调用HystrixCommand的run方法,运行依赖逻辑,如果逻辑调用超时,则执行fallback逻辑
  • 判断逻辑是否调用成功,如果调用成功,则返回调用结果;如果调用出错,则执行fallback逻辑
  • 计算熔断器状态,所有的运行状态(成功、失败、拒绝、超时)上报给熔断器,用于统计从而判断熔断器状态

有四种情况将触发fallback逻辑

  • run()方法抛出非HystrixBadRequestException异常
  • run()方法调用超时
  • 熔断器开启拦截调用
  • 线程池/队列/信号量是否跑满

参考文献

标签:逻辑,调用,run,Hystrix,Spring,熔断器,fallback,执行,Cloud
From: https://www.cnblogs.com/life-time/p/18407763

相关文章

  • springboot+vue疫情防控物业信息采集系统【程序+论文+开题】计算机毕业设计
    系统程序文件列表开题报告内容研究背景随着全球疫情的持续影响,物业管理作为社区疫情防控的第一线,其重要性日益凸显。传统物业管理方式在面对疫情时,往往存在信息采集不全、效率低下、响应滞后等问题,难以有效支撑精准防控的需求。因此,开发一套高效、智能的疫情防控物业信息采......
  • springboot高校学生请假管理系统-计算机毕业设计源码38439
    摘要本文针对高校学生考勤等问题,对其进行研究分析,然后开发设计出高校学生请假管理系统以解决问题。高校学生请假管理系统主要功能模块包括:请假信息管理、请假通知管理、审批通知管理、假期安排管理、审批反馈管理、请假分析管理、通知公告管理等,系统功能设计采取MySQL作为后......
  • springboot在线音乐播放器-计算机毕业设计源码39689
    摘要本项目旨在基于SpringBoot开发一款高效、稳定的在线音乐播放器,旨在为用户提供便捷的音乐播放体验。通过整合SpringBoot框架的强大后端支持和现代化的前端交互设计,该系统将实现查看音乐咨讯、MV商城、用户播放记录、歌手介绍、排行榜、音乐中心和演唱会等功能,为......
  • springboot+vue有机农场客户关系管理系统的设计与实现【程序+论文+开题】计算机毕业设
    系统程序文件列表开题报告内容研究背景随着消费者对食品安全及健康饮食需求的日益增长,有机农场作为提供无污染、纯天然农产品的重要基地,其市场地位日益凸显。然而,传统农场管理模式在面对日益复杂的客户群体、多样化的需求及高效运营要求时显得力不从心。特别是在客户关系管......
  • springboot+vue学生公寓报修管理系统【程序+论文+开题】计算机毕业设计
    系统程序文件列表开题报告内容研究背景随着高校规模的不断扩大,学生公寓作为学生学习与生活的重要场所,其设施设备的维护与管理日益成为高校后勤服务的重要环节。传统的学生公寓报修方式往往依赖于纸质登记或口头报告,这种方式不仅效率低下,易导致信息丢失或延误处理,还难以对维......
  • springboot零食购物系统-计算机毕业设计源码43357
    摘要本项目旨在设计和实现一个基于Web的零食购物系统,旨在满足用户对零食购物的便捷性和个性化需求。通过整合现代Web开发技术,包括前端界面设计和后端逻辑开发,系统将实现用户注册登录、商品浏览、购物车管理、订单结算等功能,旨在为用户提供一体化、高效的零食购物解决方案。......
  • springboot+vue诊所预约系统【程序+论文+开题】计算机毕业设计
    系统程序文件列表开题报告内容研究背景随着医疗服务的日益普及和民众健康意识的增强,传统诊所面临的就诊高峰、资源分配不均及患者等待时间长等问题日益凸显。特别是在大城市,优质医疗资源尤为紧张,患者往往需要提前数天甚至数周排队挂号,极大地影响了就医体验和医疗效率。在此......
  • springboot 整合 mybatis-plus
    在创建springboot模块时,依赖勾选时没有mybaits-plus选项,原因是其未被加入。所以必须要手动引入依赖<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.7</vers......
  • Nacos bootstrap配置文件中关于spring.application.name命名注意事项
    在写配置文件时,把bootstrap文件中的spring.application.name命名时单词之间使用了下划线来连接,结果在启动nacos时报错找不到配置文件一直请求的是本地的nacos,最后发现是在spring.application.name命名时如果使用连接符时必须使用中间的连接符。在官方文档中是这样说的:spring.ap......
  • JavaWeb【day12】--(SpringBootWeb登录认证)
    案例-登录认证在前面的课程中,我们已经实现了部门管理、员工管理的基本功能,但是大家会发现,我们并没有登录,就直接访问到了Tlias智能学习辅助系统的后台。这是不安全的,所以我们今天的主题就是登录认证。最终我们要实现的效果就是用户必须登录之后,才可以访问后台系统中的功能。......