hystrix 熔断(Spring Cloud)

1 hystrix 熔断

整个链路达到一定的阈值,默认情况下,10秒内产生超过20次请求,则符合第一个条件。
满足第一个条件的情况下,如果请求的错误百分比大于阈值,则会打开断路器,默认为50%。
Hystrix的逻辑,先判断是否满足第一个条件,再判断第二个条件,如果两个条件都满足,则会开启断路器

断路器打开 5 秒后,会处于半开状态,会尝试转发请求,如果仍然失败,保持打开状态,如果成功,则关闭断路器

2 使用 apache 的并发访问测试工具 ab

http://httpd.apache.org/docs/current/platform/windows.html#down

hystrix 熔断(Spring Cloud)

1) 用 ab 工具,以并发50次,来发送20000个请求

hystrix 熔断(Spring Cloud)

2) 断路器状态为 Open,所有请求会被短路,直接降级执行 fallback 方法

hystrix 熔断(Spring Cloud)

3 hystrix 配置

https://github.com/Netflix/Hystrix/wiki/Configuration

1) hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds

请求超时时间,超时后触发失败降级

2) hystrix.command.default.circuitBreaker.requestVolumeThreshold

10秒内请求数量,默认20,如果没有达到该数量,即使请求全部失败,也不会触发断路器打开

3) hystrix.command.default.circuitBreaker.errorThresholdPercentage

失败请求百分比,达到该比例则触发断路器打开

4) hystrix.command.default.circuitBreaker.sleepWindowInMilliseconds

断路器打开多长时间后,再次允许尝试访问(半开),仍失败则继续保持打开状态,如成功访问则关闭断路器,默认 5000