java HttpComponents池HttpClientConnectionManager maxPerRoute和maxTotal?
有人能给我解释一下setMaxPerRoute(max)
和 setMaxTotal(max)
对HttpComponents-poolighttpclientconnectionmanager做了什么吗
你可以在下面搜索框中键入要查询的问题!
有人能给我解释一下setMaxPerRoute(max)
和 setMaxTotal(max)
对HttpComponents-poolighttpclientconnectionmanager做了什么吗
# 1 楼答案
这些设置控制连接池大小
setMaxTotal(max)
定义连接池的总体连接限制李>setMaxPerRoute(max)
定义了每个HTTP路由的连接限制。在简单的情况下,您可以将其理解为每个目标主机的限制。引擎盖下的事情更有趣一些:HttpClient
维护了两个HttpRoute
对象,它们分别表示一个主机链,如proxy1 -> proxy2 -> targetHost
。连接是基于每个路由进行池化的。在简单的情况下,当您使用默认路由构建机制并且不提供代理支持时,您的路由可能只包括目标主机,因此每路由连接池限制实际上变成了每主机限制李>示例:
假设您有
setMaxPerRoute(5)
和setMaxTotal(20)
。这意味着您可以同时为每个目标主机使用多达5个连接:与google的5个连接。com,与oracle的另外5个连接。com等等。但是,无论与多少台主机通信,打开的连接总数都不能超过20