当前位置: 首页 > news >正文

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

Hystrix执行流程

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

有四种情况将触发fallback逻辑

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

参考文献

  • 执行流程
http://www.lryc.cn/news/435209.html

相关文章:

  • 大模型算法岗,面试百问百答,7天3个offer拿到手!
  • 代码随想录算法day32 | 动态规划算法part05 | 完全背包,518. 零钱兑换 II, 377. 组合总和 Ⅳ,70. 爬楼梯 (进阶)
  • 【Linux 从基础到进阶】自动化备份与恢复策略
  • 前端打包装包——设置镜像
  • volatile 的作用?是否具有原子性,对编译器有什么影响?什么情况下一定要用 volatile, 能否和 const 一起使用?
  • iPhone 16分辨率,屏幕尺寸,PPI 详细数据对比 iPhone 16 Plus、iPhone 16 Pro、iPhone 16 Pro Max
  • FunASR搭建语音识别服务和VAD检测
  • 设计一个支持多线程写入的并发日志记录系统:C++实战指南
  • 使用LSTM(长短期记忆网络)模型预测股票价格的实例分析
  • 开源的 Windows 12 网页体验版!精美的 UI 设计、丰富流畅的动画
  • chapter14-集合——(List)——day18
  • Frida 脚本抓取 HttpURLConnection 请求和响应
  • Java实现建造者模式和源码中的应用
  • Windows安装docker
  • SprinBoot+Vue校园车辆管理系统的设计与实现
  • 【C语言进阶】C语言动态内存管理:深入理解malloc、calloc与realloc
  • Java+控制台 图书管理系统
  • gi清除无用缓存
  • 云PLM系统对企业影响有哪些?解析云PLM系统的作用
  • 四、查找算法
  • 果蔬识别系统性能优化之路(三)
  • 时序预测|基于小龙虾优化高斯过程GPR数据回归预测Matlab程序COA-GPR 多特征输入单输出 附赠基础GPR
  • C#进阶-快速了解IOC控制反转及相关框架的使用
  • C++内存布局
  • 【Linux 19】线程概念
  • [区间dp]添加括号
  • jenkins流水线+k8s部署springcloud微服务架构项目
  • 安卓开发板_联发科MTK开发评估套件串口调试
  • vue+el-table 可输入表格使用上下键进行input框切换
  • 中国书法——孙溟㠭浅析碑帖《三希堂法帖》