Apache Httpclient 连接未释放

Apache Httpclient Connection not Released

我正在使用 spring rest 模板发送集成了 apache http 客户端 4.2.1 的 REST 请求。

由于我们需要向多个服务器发送请求,添加了 PoolingClientConnectionManager 来管理连接。

将每条路线的最大数量设置为 5 connectionManager.setDefaultMaxPerRoute(5)

而在系统 运行 几天后,我们发现连接达到了每个路由设置的最大值。

打印日志如下 存活总数:0;分配的路线:5 个中的 5 个;分配总数:5 of 100

似乎由于某种原因没有释放连接。但是我在debug的时候发现每次request结束后,即使有异常也会释放连接

是否还有其他潜在的导致此连接无法释放的根本原因?

这是因为在某些情况下,服务器持有请求,我们需要为http客户端添加超时