我正在使用 Spring Rest 模板发送集成了 apache http 客户端 4.2.1 的 REST 请求。
由于我们需要向多个服务器发送请求,因此添加了 PoolingClientConnectionManager 来管理连接。
将每条路线的最大值设置为 5 connectionManager.setDefaultMaxPerRoute(5)
系统运行几天后,我们发现连接数达到了每条路由设置的最大连接数。
打印日志如下 总存活数:0;分配的路线:5条中的5条;分配总数:100 中的 5
由于某种原因,连接似乎没有释放。但是当我调试时,我发现每次请求完成后,即使发生异常,连接也会被释放。
是否还有其他潜在的根本原因导致此连接无法释放?
最佳答案
这是因为在某些情况下,服务器会保留请求,我们需要为http客户端添加超时
关于java - Apache Httpclient 连接未释放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28635232/