RateLimiter

什么是RateLimiter

Guava库中的一个限流器组件,基于PPS(Permit per second每秒单位限流)

Permit概念

Permit直译是许可证,可以把它理解为一个消耗单位:

  • 如果要对QPS进行限制,那么Permit = Query,一次Query消耗一个Permit就能达到效果
  • 如果对文件网络IO进行限制,那么Permit = Size of Package,每次包大小越大消耗的Permit越多
  • 如果要对请求时长进行限制,那么Permit = Time Cost of Query

如下代码就是实现限制调用某接口 20次/s

double interfaceRateDouble = Double.parseDouble(20.0);
this.interfaceRateLimiter = RateLimiter.create(interfaceRateDouble);
interfaceRateLimiter.acquire();

原理

转载:https://blog.csdn.net/fubicheng208/article/details/106650146/

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容