提问者:小点点

HttpComponents PoolingHttpClientConnectionManager maxPerRoute和maxTotal?


有人能向我解释setMaxPerRoute(max)setMaxTotal(max)在参考HttpComponents PoolingHttpClientConnectionManager时做了什么吗?


共1个答案

匿名用户

这些设置控制连接池大小。

  • setMaxTotal(max)定义连接池的总体连接限制。
  • setMaxPerRoute(max)定义了每个HTTP路由的连接限制。在简单的情况下,您可以将其理解为每个目标主机的限制。在幕后,事情有点有趣:HttpClient维护了几个HttpRoute对象,每个对象代表一个主机链,如proxy1-

示例:

假设您有setMaxPerRoute(5)setMaxTotal(20)。这意味着您可以同时为每个目标主机使用多达5个连接:5个连接google.com,另外5个连接oracle.com,依此类推。然而,无论您与多少主机通信,打开的连接总数都不能超过20个。