详解Hystrix熔断机制

什么是hystrix的熔断?

hystrix熔断主要是指在一定的时间窗口内,当请求的次数达到一定的失败比率后,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、半开状态
当状态为开启时,一定时间后,熔断器就会由开启状态变成半开状态。
这时候是可以接收客户端的一次请求,如果请求成功则熔断器状态变为关闭,如果请求失败则熔断器的状态变为开启状态,等待下一个时间周期继续尝试服务调用。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码拉松

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值