PoolingHttpClientConnectionManager一次只允许与主机的有限连接

时间:2014-11-12 05:54:12

标签: java httpclient pooling

我的应用程序的要求是在多线程环境中运行。我使用PoolingHttpClientConnectionManager来维护每条路由20个连接池。

PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager();   

cm.setMaxTotal(200);
cm.setDefaultMaxPerRoute(20);

我从此连接管理器获取HttpClient并尝试通过多个步骤执行get请求。

ExecutorService executor = Executors.newFixedThreadPool(50);

                for(int k =0; k <25; k++){       
                     executor.execute(getData);
                }
                executor.shutdown();

getData方法正在使用HttpGet执行HttpClient请求。

但问题是,一次只使用5-6个连接,而不是上面提到的20个连接。所以HttpClient似乎阻止了连接调用。 有没有人遇到同样的问题或有更好的解决方案。

0 个答案:

没有答案