美文网首页
断路器模式

断路器模式

作者: BookKeeper | 来源:发表于2018-11-05 16:45 被阅读6次

断路器模式

  • Closed: 正常情况,应用请求被路由到此服务处理,断路器处于关闭状态。 断路器作为代理去维护一个失败计数器,如果处理失败,则断路器会相应的增加失败次数。如果最近的出错次数达到了既定的时间窗口内的阈值,则断路器代理变为Open状态。与此同时,会启动一个计时器,如果计时器结束,则将断路器代理变为Half-Open状态。

计时器的作用是给系统一定的时间在应用再次发起处理请求之前修复问题

  • Open: 断路器处于此状态时,应用请求过来直接Fast-Fail,并返回一个异常给应用。
  • Half-Open: 允许有限的请求进来。断路器此时维护一个成功计数器,如果这些处理全部成功或成功数达到既定时间窗口内的阈值,则假定导致之前出错的问题已被修复,断路器变为Close状态并重置出错次数,如果有任何请求处理失败或成功数未达到阈值,则断路器假定问题尚未修复,重新将断路器变为Open状态,并重启一个更长时间的计时器,继续等待服务恢复。

Half-Open状态可防止偶发的大流量请求影响服务的恢复,服务正在恢复时应该能处理有限的请求,但是如果此时有大流量进来,可能会导致服务的再次瘫痪。

image.png

上图中,失败计数器是基于时间的,会自动按周期性重置,这样可以防止应用因为偶发性的失败而进入Open状态。
成功计数器并不是基于时间,特定数量的连续请求都被成功处理时才会将断路器置为Close状态,如果有任何请求处理失败,则断路器立刻变为Open状态,成功计数器会在断路器下次进入Half-Open状态时被重置。

系统有可能会自行恢复服务,也有可能需要通过还原、重启失败的组件或者修复网络等外部方式来恢复服务。

相关文章

  • Spring Cloud构建微服务架构服务容错保护(Hystri

    断路器 断路器模式源于Martin Fowler的Circuit Breaker一文。“断路器”本身是一种开关装置...

  • 断路器模式

    断路器模式 Closed: 正常情况,应用请求被路由到此服务处理,断路器处于关闭状态。 断路器作为代理去维护一个失...

  • Spring Cloud构建微服务架构—Hystrix断路器

    断路器模式源于Martin Fowler的Circuit Breaker一文。“断路器”本身是一种开关装置,用于在...

  • Spring Cloud 学习教程——第四篇:断路器(Hystr

    一、断路器简介 Netflix开源了Hystrix组件,实现了断路器模式,SpringCloud对这一组件进行了整...

  • Spring Cloud 学习教程——第四篇:断路器(Hystr

    一、断路器简介 Netflix开源了Hystrix组件,实现了断路器模式,SpringCloud对这一组件进行了整...

  • 断路器模式

    依赖隔离 Hystrix的依赖隔离采用了线程池隔离方式,会为每个HystrixCommand创建一个独立的线程池,...

  • springCloudNetFlix 服务雪崩

    1、springCloudNetFlix 包含内容 提供的模式包括服务发现(Eureka) 断路器(Hystrix...

  • Sentinel笔记

    1.常见的处理服务雪崩的方式 超时时间 限流 仓壁模式 断路器模式 2.Sentinel流控方式 流控模式: 直接...

  • 断路器

    断路器按结构可分为塑料外壳式断路器和框架式断路器,塑料外壳式断路器产品名称以DZ开头,框架式断路器又称为万能断路器...

  • Go实现断路器

    断路器是一种模式,可以在进行远程调用时保护接口不发生重复失败、挂起或超时。 在本文中,我将尝试实现一个简单的断路器...

网友评论

      本文标题:断路器模式

      本文链接:https://www.haomeiwen.com/subject/mowsxqtx.html