用HttpClient打开太多套接字?

时间:2012-10-22 19:08:53

标签: httpclient apache-httpclient-4.x

我在http-client 4.2.1的客户端中有以下代码

    PoolingClientConnectionManager mgr = new PoolingClientConnectionManager();
    mgr.setMaxTotal(20);
    HttpClient httpclient = new DefaultHttpClient(mgr);

然后我尝试了......最后在每个帖子后调用httpPost.reset。

出于某种原因,我看到该程序占用了110个ESTABLISHED http连接到我的服务器和235个连接在CLOSE_WAIT(不是TIMED_WAIT)。

我做错了什么?这有什么问题吗?最大连接数应该是20还是我弄错了?

感谢, 迪恩

1 个答案:

答案 0 :(得分:0)

好吧,没关系....有人在代码中创建了很多DefaultHttpClient,我错过了。它似乎现在正在工作,但现在它不断为同一主机(同一主机上的不同URL)反复创建新的套接字,导致吞吐量非常慢的性能噩梦:( .... grrrrrr。