什么是服务熔断?

什么是服务熔断?一、什么是服务熔断?考试过程中当断则断的方式,正好符合微服务架构中的一种安全机制:【熔断】熔断这一概念来源于电子工程中的断路器(CircuitBreaker)

一、什么是服务熔断?

          考试过程中当断则断的方式,正好符合微服务架构中的一种安全机制:【熔断】

         熔断这一概念来源于电子工程中的断路器(Circuit Breaker)。

         在互联网系统中,当下游服务因访问压力过大而响应变慢或失败,上游服务为了保护系统整体的可用性,可以暂时切断对下游服务的调用。

         这种牺牲局部,保全整体的措施就叫做熔断。

  如果不采取熔断措施,我们的系统会怎样呢?

    我们来看一个栗子。

       当前系统中有A,B,C三个服务,服务A是上游,服务B是中游,服务C是下游。

        它们的调用链如下:

            什么是服务熔断?

     一旦下游服务C因某些原因变得不可用,积压了大量请求,服务B的请求线程也随之阻塞。线程资源逐渐耗尽,使得服务B也变得不可用。紧接着,服务      A也变为不可用,整个调用链路被拖垮。

     什么是服务熔断?

     像这种调用链路的连锁故障,叫做雪崩

在这种时候,就需要我们的熔断机制来挽救整个系统。
熔断机制的大体流程和刚才所讲的考试策略如出一辙:

什么是服务熔断?

这里需要解释两点:

      1. 开启熔断

           在固定时间窗口内,接口调用超时比率达到一个阈值,会开启熔断。

           进入熔断状态后,后续对该服务接口的调用不再经过网络,直接执行本地的默认方法,达到服务降级的效果。

      2. 熔断恢复

           熔断不可能是永久的。

           当经过了规定时间之后,服务将从熔断状态回复过来,再次接受调用方的远程调用。

 

二、Spring Cloud Hystrix很好的实现了熔断机制

           服务熔断的实际应用

           Spring Cloud Hystrix是基于Netflix的开源框架Hystrix实现,该框架实现了服务熔断线程隔离等一系列服务保护功能。

           对于熔断机制的实现,Hystrix设计了三种状态:

                1.熔断关闭状态(Closed)

                       服务没有故障时,熔断器所处的状态,对调用方的调用不做任何限制。

                2.熔断开启状态(Open)

                       在固定时间内(Hystrix默认是10秒),接口调用出错比率达到一个阈值(Hystrix默认为50%),会进入熔断开                                  启状态。

                       进入熔断状态后,  后续对该服务接口的调用不再经过网络,直接执行本地的fallback方法

                3.半熔断状态(Half-Open)

                        在进入熔断开启状态一段时间之后(Hystrix默认是5秒),熔断器会进入半熔断状态。

                        所谓半熔断就是尝试恢复服务调用,允许有限的流量调用该服务,并监控调用成功率。

                        如果成功率达到预期,则说明服务已恢复,进入熔断关闭状态;如果成功率仍旧很低,则重新进入熔断开启                                     状态。

         三个状态的转化关系如下图:

               什么是服务熔断?

 

今天的文章什么是服务熔断?分享到此就结束了,感谢您的阅读。

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

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注