首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么RateLimiter只允许一个交易的利率限制为2TPS?

为什么RateLimiter只允许一个交易的利率限制为2TPS?
EN

Stack Overflow用户
提问于 2021-04-07 05:04:00
回答 1查看 235关注 0票数 0

配置为2 TPS的RateLimiter只允许第1次请求和节流第2次请求。

代码语言:javascript
复制
import com.google.common.util.concurrent.*;

class Main {

    public static void main(String... args) {
        RateLimiter rl = RateLimiter.create(2);
        System.out.println(rl.getRate());
        System.out.println(rl.tryAcquire());
        System.out.println(rl.tryAcquire());
        System.out.println(rl.tryAcquire());
   }

}

输出:

代码语言:javascript
复制
2.0
true
false
false

我希望,由于速率被配置为2 TPS,它将允许前两个请求,而不仅仅是第一个请求。这一切为什么要发生?

使用番石榴27.0-jre.jar。

任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-07 05:19:12

平滑分布

RateLimiter的定义主要取决于发放许可证的速度。如果没有额外的配置,许可证将以固定的速率分配,以每秒许可证的形式定义。许可证将顺利分发,对个别许可证之间的延迟进行调整,以确保保持配置的费率。 可以将RateLimiter配置为有一个热身期,在此期间,颁发的许可证每秒钟稳步增加,直到达到稳定的速率为止。

参考文献:速率限制器

配置的速率在间隔内均匀分布。(更像是滑动窗口)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66979840

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档