如何在Java Web应用程序中限制webservice调用

Bad*_*dal 7 java throttling tomcat6 object-pooling

我的要求很容易理解.

我想从我的Java Web应用程序调用Web服务,每分钟限制最多10次Web服务调用.在1分钟后,我可以建立另外10个连接,无论之前的10个webservice调用的状态(已完成或未完成).

有人可以指导我实现这个的方法吗?任何教程或有用的链接?

sfu*_*ger 5

我们使用RequestThrottler(GIST)多数民众赞成通过这个博客帖子的启发.

用法:

private static final int MAX_CALLS = 10;
private static final int PER_INTERVAL = 60000; // 60s
private static final int MAX_WAIT = 2000; // 2s

private RequestThrottler _throttler = new RequestThrottler(MAX_CALLS, PER_INTERVAL);
private SomeWebService _service = new SomeWebService();

public void callService() {
    throttler.startRequest(MAX_WAIT);
    _service.call();
}
Run Code Online (Sandbox Code Playgroud)

并非您可能需要处理可能的拥塞,特别是如果您计划无限期地等待Web请求的一部分.