Bucket4:应用多个速率限制

时间:2021-06-09 18:56:48

标签: java rate-limiting

我想使用 Bucket4j 应用多个速率限制。因此,一个基于 accountNumber 的速率限制(特定 accountNumber 每秒 10 个请求)和另一个总体应用速率限制(所有帐户每秒 100 个请求)

我看到以下示例:

Bucket bucket = Bucket4j.builder()
       // allows 1000 tokens per 1 minute
       .addLimit(Bandwidth.simple(1000, Duration.ofMinutes(1)))
       // but not often then 50 tokens per 1 second
       .addLimit(Bandwidth.simple(50, Duration.ofSeconds(1)))
       .build();

然而,这更多地限制了同一桶上跨时间段的突发率。

我想,我会有所有帐户的存储桶和一个应用程序存储桶,并且需要检查适当的帐户存储桶和整个存储桶?

if (accountBucket.tryConsume(1) && applicationBucket.tryConsume(1)) {
... make request
}

0 个答案:

没有答案