我用bucket4j库实现了api的速率限制。每个用户每小时只允许200个请求。一切正常。
Bandwidth limit = Bandwidth.simple(200, Duration.ofMinutes(60));
return Bucket4j.builder().addLimit(limit).build();
但每当服务器在这两者之间重新启动时,就会重新创建bucket。所以用户允许再做200个请求。例如,我在30分钟内消耗了200个请求,我正在重新启动服务器,所以我又得到了200个可用的请求。我的意思是,我能够访问n倍的api与重新启动我的服务器。
这是意料之中的。有没有办法将这些值存储到数据库中?所以这就是坚持。bucket4j有连接db的功能吗?
暂无答案!
目前还没有任何答案,快来回答吧!