在 N 秒内对 M 个请求进行限制方法调用
2022-08-31 07:21:06
我需要一个组件/类,它将某些方法的执行限制在N秒内最大化M调用(或ms或nanos,没关系)。
换句话说,我需要确保我的方法在N秒的滑动窗口中执行不超过M次。
如果您不了解现有类,请随时发布您的解决方案/想法,您将如何实现这一点。
我需要一个组件/类,它将某些方法的执行限制在N秒内最大化M调用(或ms或nanos,没关系)。
换句话说,我需要确保我的方法在N秒的滑动窗口中执行不超过M次。
如果您不了解现有类,请随时发布您的解决方案/想法,您将如何实现这一点。
对我来说开箱即用的是Google Guava RateLimiter。
// Allow one request per second
private RateLimiter throttle = RateLimiter.create(1.0);
private void someMethod() {
throttle.acquire();
// Do something
}