在项目开发中使用HTTP请求和服务程序交互数据,部署在云服务器后有一次发现系统资源异常,检查后发现问题如下图:
在8019端口上有大量的CLOSE_WAIT释放非常缓慢。
开始查问题,定位到如下代码:
HttpConnectionManager httpConnectionManager = new MultiThreadedHttpConnectionManager();
这样定义,在releaseConnection()后仍要等待服务端ack确认才会结束CLOSE_WAIT状态
解决方案:
采用另外一种构造函数定义管理器对象
SimpleHttpConnectionManager httpConnectionManager = new SimpleHttpConnectionManager(true);