JAVA ssm b2b2c多用户商城系统源码-hystrix工作原理

简介: Hystrix是Netflix开源的一个限流熔断的项目、主要有以下功能:隔离(线程池隔离和信号量隔离):限制调用分布式服务的资源使用,某一个调用的服务出现问题不会影响其他服务调用。优雅的降级机制:超时降级、资源不足时(线程或信号量)降级,降级后可以配合降级接口返回托底数据。

Hystrix是Netflix开源的一个限流熔断的项目、主要有以下功能:
隔离(线程池隔离和信号量隔离):限制调用分布式服务的资源使用,某一个调用的服务出现问题不会影响其他服务调用。
优雅的降级机制:超时降级、资源不足时(线程或信号量)降级,降级后可以配合降级接口返回托底数据。
融断:当失败率达到阀值自动触发降级(如因网络故障/超时造成的失败率高),熔断器触发的快速失败会进行快速恢复。
缓存:提供了请求缓存、请求合并实现。支持实时监控、报警、控制(修改配置)
下面是他的工作流程:
hystrix
Hystrix主要有4种调用方式:

toObservable() 方法 :未做订阅,只是返回一个Observable 。
observe() 方法 :调用 #toObservable() 方法,并向 Observable 注册 rx.subjects.ReplaySubject 发起订阅。
queue() 方法 :调用 #toObservable() 方法的基础上,调用:Observable#toBlocking() 和 BlockingObservable#toFuture() 返回 Future 对象
execute() 方法 :调用 #queue() 方法的基础上,调用 Future#get() 方法,同步返回 #run() 的执行结果。

主要的执行逻辑:

1.每次调用创建一个新的HystrixCommand,把依赖调用封装在run()方法中.

2.执行execute()/queue做同步或异步调用.

3.判断熔断器(circuit-breaker)是否打开,如果打开跳到步骤8,进行降级策略,如果关闭进入步骤.

4.判断线程池/队列/信号量是否跑满,如果跑满进入降级步骤8,否则继续后续步骤.

5.调用HystrixCommand的run方法.运行依赖逻辑

依赖逻辑调用超时,进入步骤8.

6.判断逻辑是否调用成功。返回成功调用结果;调用出错,进入步骤8.

7.计算熔断器状态,所有的运行状态(成功, 失败, 拒绝,超时)上报给熔断器,用于统计从而判断熔断器状态.

8.getFallback()降级逻辑。以下四种情况将触发getFallback调用:

run()方法抛出非HystrixBadRequestException异常。
run()方法调用超时
熔断器开启拦截调用
线程池/队列/信号量是否跑满
没有实现getFallback的Command将直接抛出异常,fallback降级逻辑调用成功直接返回,降级逻辑调用失败抛出异常.

9.返回执行成功结果

目录
相关文章
|
5天前
|
JavaScript 前端开发 数据可视化
JAVA人员定位系统源码,Java高精度定位系统源码
1、对各个地图以及各个区域内的人员信息快速查看,以图表的形式展示,更加清晰。 2、主要包括人员动态数据、各类告警事件、员工巡检状态等。
18 3
|
1天前
|
消息中间件 运维 Java
java医院综合信息管理云HIS系统源码(前后端分离、SaaS模式、云计算)
云HIS系统分为两个大的系统:综合管理系统和业务系统 1、综合管理系统:由运营商、开发商和监管机构使用,用来进行运营管理、运维管理和综合监管。 2、业务系统:由基层医院使用,用来支撑医院各类业务运转。
10 1
|
1天前
|
存储 缓存 安全
Java HashMap:哈希表原理、性能与优化
Java HashMap:哈希表原理、性能与优化
|
1天前
|
存储 Java Serverless
哈希表原理与Java HashSet、LinkedHashSet实现
哈希表原理与Java HashSet、LinkedHashSet实现
|
1天前
|
监控 数据可视化 关系型数据库
微服务架构+Java+Spring Cloud +UniApp +MySql智慧工地系统源码
项目管理:项目名称、施工单位名称、项目地址、项目地址、总造价、总面积、施工准可证、开工日期、计划竣工日期、项目状态等。
16 5
|
1天前
|
人工智能 自然语言处理 前端开发
Java智慧医院互联网智能3D导诊系统源码
能够基于 AI 引擎,针对于患者描述的病情及伴随症状,同时结合患者的性别年龄特征,准确推荐医院科室。
146 51
|
3天前
|
人工智能 小程序 数据挖掘
Java智慧中小学校管理系统源码带微信小程序
微信小程序端包括家长端和教师端;设有首页、发现、个人中心;首页里设有学校简介、组织架构、师资力量、学校荣誉、网上报修、电子班牌;发现页面可以看到最新的动态,班级圈等;个人中心设有上班打卡、我的课表、请假、班级考勤、通知公告、倒计时、积分商城、放学管理、体温检测、班级德育、图片视频管理、教学班,校内各大活动一目了然。
18 0
|
5天前
|
安全 JavaScript 前端开发
JAVA药物不良反应(Adverse Drug Reaction,ADR)智能监测系统源码
ADR智能监测系统由系统管理、规则管理、监测报告三个大的功能模块组成。方便药师维护监测规则知识库,以及监测主题库,提高临床工作效率。
10 0
|
29天前
|
运维 供应链 Java
Java数字化健康卫生智慧云HIS系统源码
基于云计算技术的B/S架构云HIS集挂号、处方、收费、取药、病历于一体,完全适配各类中小型医院、诊所。
28 0
|
1月前
|
人工智能 前端开发 JavaScript
计算机Java项目|基于SSM的课程智能组卷系统(二)
计算机Java项目|基于SSM的课程智能组卷系统
计算机Java项目|基于SSM的课程智能组卷系统(二)

相关产品

  • 云迁移中心