Hystrix的 断路器

- requestVolumeThreshold:触发熔断的最小请求次数,默认20
- errorThresholdPercentage:触发熔断的失败请求最小占比,默认50%
- sleepWindowInMilliseconds:休眠时长,默认是5000毫秒

工作流程理解:

断路器关闭状态下,请求是正常的,当请求在一定时间内达到requestVolumeThreshold设置的次数,并且请求失败率达到errorThresholdPercentage设置的值,断路器进入打开状态,在断路器打开状态下,任何访问过来的请求,将直接执行降级的方法,这个时间持续sleepWindowInMilliseconds设置的时间,当这个时间过了,断路器进入一个半打开的状态,就是放一个请求过去,看是否能执行成功,如果这个请求执行成功,就将断路器设置成关闭状态,如果这个请求失败,就将断路器继续设置成打开状态,进行持续一个sleepWindowInMilliseconds时间,然后再进入半打开状态......

断路器关闭状态---就是不使用断路器,让发送过来的请求,可以直接执行;

断路器打开状态---就是执行断路器的功能,直接执行降级的方法;

断路器半开状态---就是放过一个请求过去,试探这个请求能否执行成功,再决定后续是什么状态。

个人理解:

经常看到例子,类比保险丝与断路器,有时会产生一些理解上的偏差,断路器关闭状态,相当于保险丝正常工作状态,电流可以通过保险丝;断路器打开状态,相当于保险丝起作用,保险丝烧了,电流通不过去了,仅是个人理解。

你可能感兴趣的:(hystrix,java,spring)