SpringCloud-Hystrix-服务熔断


服务熔断结合现实生活例子解释

如果某个服务发生了异常,那么就需要对每个请求都 要等待。就会是整个程序的并发处理能力极具下降。这种情况如何处理?就需要使用到 Hystrix 的熔断服务,直接将此服务断开以保证其他服务的高可用。

熔断(circuit breaker),例如保险丝,电路中正确安置保险丝,保险丝就会在电流异常 升高到一定的高度和热度的时候,自身熔断切断电流,保护了电路安全运行。熔断就跟保险 丝一样,当一个服务请求并发特别大,服务器已经招架不住了,调用错误率飙升,当错误率 达到一定阈值后,就将这个服务熔断了。熔断之后,后续的请求就不会再请求服务器了,以 减缓服务器的压力。而在程序中,熔断之后肯定不能一直都不调用服务了,所以还需要有个 重启的机制。

服务熔断的三种状态(close、half open、open)

在这里插入图片描述

1、关闭(close):正常情况下hystrix为关闭状态,所有服务都可正常访问

2、半打开(half open):当服务接口对应的熔断状态为open的时候,所有服务调用该服务的方法都执行本地降级方法,那么什么时候才会恢复到远程调用呢?这时不得不提一下Hystrix提供了一种测试策略,即设置一个时间窗口(休眠时间窗,默认是5秒),从从熔断状态变为open状态开始的一个时间窗口内,调用该服务接口时都委托服务降级进行执行。如果时间超过了时间窗口,则把熔断状态从open转到half-open,这时候服务调用服务接口,发起的远程调用,如果发起的远程降级还是失败,则需重新设置熔断状态为open,从新记录时间窗口开始。

3、打开(open):当访问同一个接口超过设定的阈值并且错误次数超过设置错误阈值时,就会打开熔断机制,状态从close——>open(条件:最近20次请求中,有50%的请求都超时)

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值