Hystrix

月伴飞鱼 2024-12-14 13:30:24
框架相关
支付宝打赏 微信打赏

如果文章对你有帮助,欢迎点击上方按钮打赏作者!

Hystrix熔断

Hystrix熔断主要是指在一定的时间窗口内,当请求的次数达到一定的失败比率后,Hystrix就会主动拒绝服务。

  • 采取将请求直接降级等方式,从而有效的缓解了服务雪崩的问题。

通过快速错误的方式,有效的控制服务之间链路调用的响应时间,保证整个微服务的健康。

Hystrix熔断配置

//超时时间
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=2000
//开启熔断
hystrix.command.default.execution.timeout.enabled=true
//熔断触发的最小个数,即在一定的时间窗口内请求达到一定的次数,默认20
hystrix.command.default.circuitBreaker.requestVolumeThreshold=10
//时间窗口,默认10s
hystrix.command.default.metrics.rollingStats.timeInMilliseconds=5000
//失败率达到多少百分比后熔断 默认值:50
hystrix.command.default.circuitBreaker.errorThresholdPercentage=50
//熔断多长时间后,尝试放一次请求进来,默认5秒
hystrix.command.default.circuitBreaker.sleepWindowInMilliseconds=5000

以上配置表示,5秒内,如果请求次数达到10次,且50%都失败了,则开启熔断功能。

并在熔断功能开启5秒后,允许一次请求(即此时熔断为半开状态)。

如果请求访问成功则关闭熔断,恢复正常调用,否则继续熔断5秒,以此循环。

8e09feffac10381c37dee5091b72482a 1ac47378fe1321a7062f27976f8f56cd

断路器状态

关闭状态:

  • 关闭状态时客户端的请求是可以正常到达的。

开启状态:

  • 开启状态时客户端的请求是不会到达服务端,直接走降级方法。

半开状态:

  • 当状态为开启时,一定时间后,熔断器就会由开启状态变成半开状态。

  • 这时候是可以接收客户端的一次请求,如果请求成功则熔断器状态变为关闭。

  • 如果请求失败则熔断器的状态变为开启状态,等待下一个时间周期继续尝试服务调用。

支付宝打赏 微信打赏

如果文章对你有帮助,欢迎点击上方按钮打赏作者!