发布于 2026-01-06 0 阅读
0

5分钟了解断路器模式

5分钟了解断路器模式

基础设施设计模式有很多种。在这篇文章中,我想深入探讨一下断路器模式。这种模式的名称来源于电气工程和断路器。

电气工程中的断路器

电力公司以恒定电压(因居住国家/地区而异)向您家输送电力。电压是衡量推动电子在电路中流动的力的大小。电流是电子流动的速率。传输电子的电线、灯泡、电脑和其他电器都会对电流造成负载,因此房屋各处的电阻会有所不同。电阻会产生热量。

欧姆定律定义了这些不同组成部分之间的关​​系:

I = V/R

  • I - 电流,单位为安培
  • V - 电压,单位为伏特
  • R - 电阻,单位为欧姆

电路是电流的通路。家用断路器是一种安全装置,通过切断电路或通路来防止火灾。正常工作的断路器会在电流跃升至危险水平之前断开电路。

此外,住宅电路通常采用并联设计,这样即使某个房间或大型电器发生故障,也不会影响到房屋的其他部分。过大的电荷和热量可能会导致房屋线路或电器线路过载,损坏其他设备或引发火灾。

断开电路意味着电流无法流通,电路中断。闭合电路则正常工作。

软件工程中的断路器

如果我们把请求流比作电流,那么我们就可以通过建立一个中断请求流的机制来实现断路器模式。

在软件中,当我们谈到熔断器模式时,“断开”的电路表示存在问题。在设计中实现熔断器的目的是防止单个服务对其他服务造成损害,甚至导致整个系统崩溃。如果某个请求持续失败,持续重试可能会加剧根本问题,也可能延迟恢复。

什么故障会导致电路断路器跳闸?

在分布式系统中,资源消耗、错误密度或运行时间都可能表明架构存在局限性,从而对整个系统产生影响。

软件中断路器的实际实现与电气工程中的实现截然不同。我们可以在故障停止后自动解除跳闸状态。我们还可以实现第三种状态——“半开”,允许性能下降。在恢复期间,通过半开电路限制请求可以为评估故障服务的状态以及故障服务恢复争取时间。

是否存在适用于系统的欧姆定律?

虽然没有欧姆定律,但就最大请求速率或依赖服务及第三方服务的限制而言,这值得考虑。这些服务的总负载是多少?

运维工程师需要了解是否有系统部署了断路器以及部署位置。根据断路器的部署方式,客户端可能会完全终止特定操作,或者将请求排队等待稍后处理。断路器跳闸的情况可以为改进系统运行和设计提供方向。因此,发现并监控断路器的状态变化至关重要。

在某些方面,熔断机制并非理想之选。我们通常没有单一的指标可以判断系统是否处于不良状态。在设计应用程序时,提升客户价值、最大限度地减少对外部服务的影响以及降低浪费性支出都至关重要。基于单一指标实施熔断机制,并对其进行监控和评估以进行逐步改进或定制,或许比什么都不做要好。

工程师通常会将断路器模式与重试模式和隔板设计模式结合使用。我将在其他文章中详细介绍这些模式。

文章来源:https://dev.to/azure/learn-about-the- Circuit-breaker-pattern-in-5-minutes-1l45