java - Apache Httpclient 连接未释放

标签 java httpclient

我正在使用 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/

相关文章:

java - 来自 Jersey 客户端的 CLOSE_WAIT 中的套接字

java - 如何在 Android 中发送 HTTP 基本身份验证 header ?

java - Content-Length header 已存在

java - 使用java加载串口共享库出错

java - 如何以编程方式定义默认实体监听器?

java - 如何在新版本的 android studio 4.2 中获取 SHA1 代码?

xamarin - Xam 表单中的 ModernHttpClient。在最新版本中是否有必要?

c++ - 从 Poco http 客户端获取对字符串的响应

java - 从使用 jdbc 的 java 项目创建 jar

java - 对值 1 到 n 的一系列 n^n 求和且不会溢出?只需要答案的最后一位数字