resilience4j(六):核心模块CircuitBreaker源码之CircuitBreakerMetrics

本文深入解析Resilience4j的CircuitBreakerMetrics模块,重点介绍RingBitSet在熔断器状态管理中的作用。RingBitSet用于存储调用的成功或失败状态,只有当缓冲区填满时才会计算失败率。CircuitBreaker在HALF_OPEN状态时,会使用另一RingBitSet评估失败率以决定是否返回CLOSED或OPEN状态。CircuitBreaker支持通过reset方法重置指标和缓冲区。RingBitSet的setNextBit方法返回失败次数,成功次数则为总请求次数减去失败次数。

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

CircuitBreakerMetrics

熔断器度量指标,熔断器在工作中,熔断相关实际数据,均存储在此。

类图关系如下:
在这里插入图片描述

成员变量

  • private final int ringBufferSize;//熔断在CLOSED,HALF_OPEN状态下的环形区缓冲大小
    
  • private final RingBitSet ringBitSet;//存储请求通过或被熔断次数
    
  • private final LongAdder numberOfNotPermittedCalls;//请求被熔断的次数
    

RingBitSet

CircuitBreaker在CLOSED 或 HALF_OPEN状态时,成功调用会在bit位存0,失败的调用会存储1。Ring Bit Buffer具有(可配置的)固定大小。Ring Bit Buffer 原理类似于java.util.BitSet。BitSet使用long []数组来存储这些位,意味着BitSet只需要一个16个长(6

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值