【问题标题】:Apache Httpclient Connection not ReleasedApache Httpclient 连接未发布
【发布时间】:2015-04-22 12:01:31
【问题描述】:

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

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

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

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

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

似乎由于某种原因没有释放连接。但是我调试的时候发现每次request完成后,即使出现异常也会释放连接。

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

【问题讨论】:

  • 会不会,您释放的连接只是将它们返回到池中?
  • 我调用了release,连接会释放到pool中
  • 池通常是这样工作的。
  • 可能值得检查是否有任何忽略响应有效负载的路径;当我只阅读一些响应的状态码而忽略响应正文时,我遇到了这样一个“连接未释放”的问题。

标签: java httpclient


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多