HttpComponents PoolingHttpClientConnectionManager maxPerRoute and maxTotal?
2022-09-03 09:14:56
有人可以向我解释一下,在引用HttpComponents PoolingHttpClientConnectionManager时,有什么和做什么吗?setMaxPerRoute(max)
setMaxTotal(max)
有人可以向我解释一下,在引用HttpComponents PoolingHttpClientConnectionManager时,有什么和做什么吗?setMaxPerRoute(max)
setMaxTotal(max)
这些设置控制连接池大小。
setMaxTotal(max)
定义连接池的覆盖连接限制。setMaxPerRoute(max)
定义每个 HTTP 路由的连接限制。在简单的情况下,您可以将其理解为每个目标主机的限制。在引擎盖下,事情有点有趣:维护几个对象,这些对象代表每个主机链,例如.连接基于每个路由进行池化。在简单情况下,当您使用默认的路由构建机制并且不提供代理支持时,您的路由可能仅包含目标主机,因此每个路由连接池限制实际上变成了每个主机的限制。HttpClient
HttpRoute
proxy1 -> proxy2 -> targetHost
例:
假设您有 和 。这意味着您可以同时为每个目标主机使用最多 5 个连接:5 个与 google.com 的连接,另外 5 个与 oracle.com 的连接,依此类推。但是,无论您与多少台主机通信,打开的连接总数都不能超过 20。setMaxPerRoute(5)
setMaxTotal(20)