Spring Cloud Hystrix原理解析
2022-02-20 19:27:48 0 举报
Spring Cloud Hystrix原理解析, 详细分析Hystrix的原理
作者其他创作
大纲/内容
0:40
5
否
42
39
服务消费者
0
9
Failure
正常向下执行
1:00
0:20
判断是否达到最小调用次数
0:10
FeignClient接口
1
call
100个请求
2
Success
8
1:30
过来100个请求
readOnlyStream
窗口大小60s
7
0:50
是
0:30
11
Subject<HystrixCommandExecutionStarted>
writeOnlySubject
47
关闭断路器
开启断路器
0:00
1:20
临界点,出现2s内达到200个请求
滑动窗口大小10s
38
46
26
问题开始
1:10
Rejection
返回降级逻辑
限制1分钟100个请求
允许通过的线程,继续访问服务。执行结束后归还信号量
判断是否触发熔断
windowflatMap/reduce
Timeout
如果当前处于熔断状态,且当前时间举例熔断时间大于5s
服务提供者
没有异常,正常调用远程方法
12
大于5s?
否,5s后重试
发起远程调用,是否正常
大量请求
4
3
当前时间窗口总的健康请求数量
BucketedRollingCounterStreamHealthCountsStream
此时,统计当前时间窗口中,总的请求数量为200
A Service
信号量隔离40个
得不到信号量,执行fallback
48
23
HystrixCommandCompletionStream
当前时间窗口总的错误率
6
把数据更新到当前时间所属的滑动窗口中
Subject<HystrixCommandCompletion>
滑动窗口
业务接口
大于20次?
false
Hystrix在通信过程中扮演的角色和所处的位置
将请求执行结果写入到事件流中
http协议
1:40
信号量隔离10个
Hystrix断路器工作原理
随着时间往前滑动
再过来100个请求
ThreadLocal<HystrixThreadEventStream>
HttpClient
isOpen?
任务执行结束后,publish event
share
59
大于50%
OpenFrameWork
是否达到错误率阈值
allowRequest()
HystrixCircuitBreaker
开启熔断状态
滑动窗口解决临界点问题
远程访问试探
HystrixCommand
Hystrix(熔断保护)
B Service
向前滑动
5s窗口
10s的窗口
普通计数器
收藏
收藏
0 条评论
下一页