【发布时间】:2018-10-21 00:06:14
【问题描述】:
鉴于我正在使用带有 warmpup 的 Guava ratelimiter,我正在尝试找出一种方法来计算在特定时间会发生多少 QPS。我读了 cmets here,但我仍然不清楚。希望这里有人可以为我澄清。
我的用例:
我调用了一个限制为 50 TPS 的外部服务。需要注意的是,我们调用它们的前 500 次必须远低于 50 TPS,之后我们可以恢复 50TPS。 (如果有比使用 ratelimiter 更好的解决方案,我很想听听!)
伪代码:
RateLimiter rateLimiter = RateLimiter.create(50.0, 10, minutes);
for (String customerId : customerList) {
rateLimiter.acquire();
// call external service
}
假设我们只用一个线程来做这件事。有没有办法计算给定时间的 TPS(QPS)? 3分钟? 5分钟?等等
【问题讨论】: