Hystrix系列之工作流程

本文介绍了Hystrix命令的工作流程,包括构建命令、执行命令、判断响应缓存状态、检查熔断器状态、评估资源使用情况、调用依赖服务、收集监控信息、执行降级逻辑及最终响应返回。通过这一流程,可以更好地理解和应用Hystrix进行服务间的容错管理和流量控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

工作流程

工作流程

Step1:构建命令

创建HystrixCommand或者HystrixObservableCommand对象:

HystrixCommand command = new HystrixCommand(arg1, arg2);
HystrixObservableCommand command = new HystrixObservableCommand(arg1, arg2);
Step2:执行命令
K             value   = command.execute(); //同步,针对HystrixCommand
Future<K>     fValue  = command.queue(); //异步,针对HystrixCommand
Observable<K> ohValue = command.observe(); //异步,全部
Observable<K> ocValue = command.toObservable(); //异步,全部
Step3:判断响应是否已缓存

  如果请求对应的响应已经在缓存中,直接返回响应;

Step4:判断熔断器是否打开

  如果熔断器没打开,继续执行下一步;否则,命令不再执行,直接跳到步骤8,执行降级。

Step5:判断线程池、任务队列、信号量是否已满

  如果没满,继续执行下一步;否则,命令不再执行,直接跳到步骤8,执行降级。

Step6:调用依赖的服务

  调用依赖的外部服务,即执行HystrixObservableCommand.construct() or HystrixCommand.run()。如果命令执行超时,则会抛出TimeoutException,直接跳到步骤8,执行降级。如果命令执行成功,则回调onCompleted()方法。

Step7:监控信息收集

  熔断器定时采集命令执行过程中各种信息,包括成功、失败、超时和拒绝等,用于计算判断熔断器是否需要断开/开启等。

Step8:执行降级

  执行HystrixCommand.getFallback()或者HystrixObservableCommand.resumeWithFallback(),如果降级逻辑出错,则回调onError()方法。

Step9:返回响应

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值