赞
踩
hystrix熔断主要是指在一定的时间窗口内,当请求的次数达到一定的失败比率后,hystrix就会主动拒绝服务,采取将请求直接降级等方式,从而有效的缓解了服务雪崩的问题,通过快速错误的方式,有效的控制服务之间链路调用的响应时间,保证整个微服务的健康。
开启hystrix熔断并配置hystrix的超时时间,需要注意ribbon的超时配置的影响,具体可以参考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秒,以此循环。
close状态
达到条件后,断路器开启
断路器的三个状态:
1、关闭状态
关闭状态时客户端的请求是可以正常到达的。
2、开启状态
开启状态时客户端的请求是不会到达服务端,直接走降级方法。
3、半开状态
当状态为开启时,一定时间后,熔断器就会由开启状态变成半开状态。
这时候是可以接收客户端的一次请求,如果请求成功则熔断器状态变为关闭,如果请求失败则熔断器的状态变为开启状态,等待下一个时间周期继续尝试服务调用。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。