首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HttpComponents PoolingHttpClientConnectionManager maxPerRoute和maxTotal?

HttpComponents PoolingHttpClientConnectionManager maxPerRoute和maxTotal?
EN

Stack Overflow用户
提问于 2013-10-14 00:16:21
回答 1查看 12.4K关注 0票数 13

有人能向我解释一下setMaxPerRoute(max)setMaxTotal(max)在HttpComponents PoolingHttpClientConnectionManager方面做了什么吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-14 00:24:31

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

  • setMaxTotal(max)定义了连接的总连接限制pool.
  • setMaxPerRoute(max)定义了每个HTTP路由的连接限制。在简单的情况下,您可以将其理解为每个目标主机的限制。在幕后,事情更有趣一些:HttpClient维护了两个HttpRoute对象,每个对象代表一个主机链,比如proxy1 -> proxy2 -> targetHost。连接池是以每条路由为基础的。在简单的情况下,当您使用默认的路由构建机制并且没有提供代理支持时,您的路由可能只包含目标主机,因此每个路由的连接池限制实际上变成了每个主机的限制。

示例:

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

票数 38
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19347350

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档