【21】Hystrix基本工作原理
文章目录
- 前言
- 工作流程图
-
- 1.构造一个HystrixCommand或HystrixObservableCommand对象
- 2.执行命令
-
- 响应是否被缓存?
-
- 断路器是否开启?
-
- 线程池/信号量是否已满?
- 6.HystrixObservableCommand.construct()或HystrixCommand.run()
- 7.计算断路器健康状态
-
- 获取降级
-
- 返回成功响应
- 断路器
- 隔离
-
- 线程和线程池
- 线程池的好处
- 线程池的缺点
- 线程成本
- 信号量
- 请求折叠
- 请求缓存
前言
内容来自Hystrix
工作流程图
下图显示了通过 Hystrix 向服务提供者发出请求时会发生什么:

以下部分将更详细地解释此流程:
1.构造一个HystrixCommand或HystrixObservableCommand对象
第一步是构造一个HystrixCommand或HystrixObservableCommand对象来表示对服务提供者发出的请求。向构造函数传递发出请求时需要的参数。
HystrixCommand如果期望返回单个响应,则构造一个对象。例如:
HystrixCommand command = new HystrixCommand(arg1, arg2);
HystrixObservableCommand如果期望返回一个发出响应的 Observable,则构造一个对象。例如:
HystrixObservableCommand command = new HystrixObservableCommand(arg1, arg2);
2.执行命令
有四种方法可以执行命令,通过使用 Hystrix 命令对象的以下四种方法之一(前两种仅适用于简单HystrixCommand对象,不适用于HystrixObservableCommand):