Circuit Breaker

2023-09-09

Circuit Breaker

大家好,今天聊Circuit Breaker

Circuit Breaker就是“断路器”,也就是日常生活中俗称的“跳闸”,如果电力功率过载或者短路,断路器就会断开。

同样的思路也被用在了软件的架构设计中,所以,这种架构设计模式也就同样被称为“断路器”模式。

架构设计中引入断路器模式主要是为了保障系统的可用性,没有任何一个系统是封闭独立的个体,往往都需要依赖第三方模块或者系统,但我们又不希望因为第三方模块或者系统的失败而受牵连,所以,我们才会引入断路器模式,这样,即使第三方出问题,也不会波及到我们的系统,或者说把受波及的风险和损失降到最低。

断路器模式的关键设计有两种状态,一种状态是全断开,一种是半断开。所谓全断开就是一旦发现第三方模块或者系统不可用,就完全不再调用第三方模块或者系统,而半断开则给予补救措施,依然会不时的去调用一下第三方模块或者系统,看看其是否有恢复,如果恢复了,就不再断开,否则,继续进去全断开状态。

很多电商系统大促期间为了保障系统的稳定性和可用性,往往需要考虑服务分级和降级, 而为了完成这样的目的,系统设计中就会考虑使用断路器模式。

最后,给大家留一个小问题,现实的工程实践中,其实有比断路器模式更简单有效的方式,你知道是什么吗?