SpringCloud-Hystrix-服务熔断

导读:本篇文章讲解 SpringCloud-Hystrix-服务熔断,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com


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

如果某个服务发生了异常,那么就需要对每个请求都 要等待。就会是整个程序的并发处理能力极具下降。这种情况如何处理?就需要使用到 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%的请求都超时)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/5076.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!