平滑限流某个接口的请求数
之前的限流方式都不能很好地应对突发请求,即瞬间请求可能都被允许,从而导致一些问题。因此,在一些场景中需要对突发请求进行整形,整形为平均速率请求处理(比如5r/s,则每隔200毫秒处理一个请求,平滑了速率)。这个时候有两种算法满足我们的场景:令牌桶和漏桶算法。Guava框架提供了令牌桶算法实现,可直接拿来使用。
Guava RateLimiter提供的令牌桶算法可用于平滑突发限流(SmoothBursty)和平滑预热限流(SmoothWarmingUp)实现。
SmoothBursty
RateLimiter limiter = RateLimiter.create (5);
System.out .println(limiter.acquire());
System.out .println(limiter.acquire());
System.out .println(limiter.acquire());
System.out 个人小额信用贷 .println(limiter.acquire());
System.out .println(limiter.acquire());
System.out .println(limiter.acquire());
成都十大贷款靠谱平台将得到类似如下的输出。
0.0
0.198239
0.196083
0.200609
0.199599
0.19961
本文地址:平滑限流某个接口的请求数 _http://longshunzhuangshi.com/jianzhanzixun/266.html 本文tag标签:平滑限流某个接口的请求数