我已经设置了具有 1000 个池的 PoolingHttpClientConnectionManager,但我不明白此日志:
[可用总数:1000;分配的路线:1000 条中的 1000 条;分配总数:1000 / 1000]
我怎么可能有 1000 个可用池和 1000 个(最多)已分配池? 我还设置了自己的KeepAliveStrategy为5s。我相信每 5 秒应该释放一个分配的。
我也找不到: [可用总数:0;分配的路线:1000 条中的 1000 条;分配总数:1000 / 1000] 所以我不知道我是如何获得完整分配的路线的。
值得一提的是,这个 httpclient 随后被传递到 HttpComponentsMessageSender,而那个 httpclient 被传递到 WebServiceTemplate => 进行 SOAP 调用。
尝试设置KeepAliveStrategy,但没有帮助。我仍然看到我有所有可用的池,但也分配到最大值
池连接管理器通常强制执行两种类型的分配限制:
在您的示例中,如果只有一条路由,则可以轻松地将所有可能的连接插槽分配给该唯一路由。
顺便说一句,如果一个人需要多个具有相同路由的并发连接(超过 20 个),那么就非常,非常错误