hystrix熔断器之熔断实现
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hystrix熔断器之熔断实现相关的知识,希望对你有一定的参考价值。
Hystrix命令(HystrixCommand)封装用户请求方法,对用户调用进行隔离。HystrixCommand在执行用户请求时,会首先HystrixCircuitBreaker进行熔断判断,
如果请求已经被熔断了,直接返回定义的错误信息,如果没有被熔断,调用请求。在执行的各个过程,记录调用的超时和异常,HystrixCircuitBreaker记录调用的超时和异常对请求进行熔断。
熔断器(HystrixCircuitBreaker)执行过程如下:
熔断器(HystrixCircuitBreaker)首先会去判断熔断配置是否开启。
- 如果未开启,则执行命令。
- 如果开启,熔断器会判断是否短路,(默认为非短路),
- 如果未短路则执行命令。
- 熔断器会通过HystrixCommandMetrics,判断改命令调用的错误次数是否达到上限或者总调用次数是否达到上限。
- 如果达到上限,设置熔断器为短路,拒绝执行。
- 如果未达到上限,执行命令。
- 如果短路,判断当前时间是否超过短路窗口期,
- 如果没有超过,拒绝执行。
- 如果超过则允许请求执行。 如果请求执行成功,解除熔断,如果请求执行失败,并重新计算短路窗口期(记录当前时间)。
以上是关于hystrix熔断器之熔断实现的主要内容,如果未能解决你的问题,请参考以下文章
hystrix熔断器之HystrixCommandExecutionHook
深入浅出SpringCloud原理及实战「Netflix系列之Hystrix」针对于限流熔断组件Hystrix的原理和实现机制
SpringCloud系列之二---Feign实现服务间调用,集成Hystrix熔断器Hystrix-Dashboard仪表盘