Resilience4j源码解析-2.3.2 CircuitBreaker模块之有限状态机

本文深入解析Resilience4j的CircuitBreakerStateMachine,核心类实现了熔断器接口,包含状态转换、熔断机制和事件发布。通过AtomicReference保证状态引用原子性,详细介绍了从关闭到打开、半开、不可用和强制打开等状态的转换方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

3),有限状态机的实现

状态建模完成,还需要建模一个状态机来驱动状态的变化,把状态机封装成类CircuitBreakerStateMachine。如图:

 

CircuitBreakerStateMachine类实现了熔断器CircuitBreaker接口,除了实现状态转换机制,还实现了熔断机制和事件发布机制。

所以CircuitBreakerStateMachine类是整个熔断器模块的核心类,在这篇文章中我们只研究状态转换机制,在后续的文章中我们逐步讲解熔断机制和事件发布机制。

 

下面我们看一下CircuitBreaker接口和CircuitBreakerStateMachine实现类中与状态相关的属性和方法:

 

1,在CircuitBreaker接口中声明了状态的枚举类,主要是为了方便进行判等操作,同时也设置了每种状态是否允许发布事件

 

2,CircuitBreakerStateMachine实现类中,用AtomicReference保证对CircuitBreakerState引用的原子性,在构造方法中初始化状态机为关闭状态。

 

//

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值