【总结】RateLimiter

RateLimiter通过累积令牌应对突发流量,当令牌不足时,线程会等待直到有足够的令牌。预支付令牌原理是,当需求超过库存时,线程会睡眠并计算下次获取令牌的时间,其他线程需等待该时间后才能预支付。这种机制保证了流量控制的平滑性。
摘要由CSDN通过智能技术生成

1 RateLimiter

  • RateLimiter由于会累积令牌,所以可以应对突发流量;
  • RateLimiter在没有足够令牌发放时,采用滞后处理的方式,也就是前一个请求获取令牌所需等待的时间由下一 次请求来承受,也就是代替前一个请求进行等待;

1.1 RateLimiter核心函数及成员变量

在这里插入图片描述

1.2RateLimiter两种限流器

在这里插入图片描述

1.3quire函数调用过程

在这里插入图片描述

2 RateLimiter的预支付令牌原理

  • 当一个线程所需要的令牌数大于库存令牌数时, 就令此线程睡眠到nextFreeTicketMicros时间,再去预支付令牌,此时根据预支付的令牌数N,去更新nextFreeTicketMicros:nextFreeTicketMicros = N * stableIntervalMicros + nextFreeTicketMicros ;

  • 下一个线程若想进行预支付,则需等到上次线程更新后的nextFreeTicketMicros时间才能进行预支付功能;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值