高并发访问httpclient抛出Too many open files的解决办法

        代码种只用post.releaseConnection()关闭连接,经过再网上查找资料,说这种关闭并没有真正关闭连接,而是将该连接提交给 MultiThreadedHttpConnectionManager,等待复用。Close_wate需要延迟几秒钟才能关闭连接,而每个Socket连接都需要等待几秒钟,压力过大时,开启的Socket连接超过了系统所能承受的最大连接数(ulimit -u 10240),所以抛出Too many open files异常。

        该异常的解决办法:1、增大系统所能承受的最大连接数;2、增加post.addRequestHeader( "Connection", "close");

 

 

你可能感兴趣的:(httpclient)