Resilience4j源码解析-3.1 RateLimiter模块之实现令牌桶限流

一,Resilience4j的限流器设计理念

当限流器启动时,以当前JVM启动时间为起点,JVM结束时间为终点,每经过一个固定时间段(cycle),记录为一个周期,每个周期设置固定的可访问的次数(permissions)。当有线程请求访问时,首先计算经历到了那个周期,该周期的可访问次数是否大于零,如果大于零则允许请求调用;如果小于零,则等待、被拒绝或者进行降级处理。如图:

根据这种设计理念,Resilience4j的限流器实现了令牌桶限流和固定周期下的固定并发数限流,供不同的业务场景使用。令牌桶限流的好处是可以应对突发请求的流量。

 

二,限流器接口(RateLimiter)

RateLimiter有两个实现类AtomicRateLimiter和SemaphoreBasedRateLimiter,在RateLimiter接口中主要声明了创建具体限流器的一系列方法:

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值