作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
有人可以向我解释一下 setMaxPerRoute(max)
和 setMaxTotal(max)
在引用 HttpComponents PoolingHttpClientConnectionManager 时做了什么吗?
最佳答案
这些设置控制连接池的大小。
setMaxTotal(max)
定义连接池的总连接限制。setMaxPerRoute(max)
定义每个 HTTP 路由的连接限制。在简单的情况下,您可以将其理解为每个目标主机的限制。在引擎盖下,事情有点有趣:HttpClient
维护几个 HttpRoute
对象,每个对象代表一个主机链,比如 proxy1 -> proxy2 ->目标主机
。连接在每个路由的基础上被合并。在简单的情况下,当您使用默认的路由构建机制并且不提供代理支持时,您的路由可能仅包含目标主机,因此每个路由连接池限制实际上变成了每个主机限制。示例:
假设您有 setMaxPerRoute(5)
和 setMaxTotal(20)
。这意味着您可以同时为每个目标主机使用最多 5 个连接:5 个与 google.com 的连接,另外 5 个与 oracle.com 的连接,依此类推。但是,无论您正在与之通信的主机数量如何,打开的连接总数都不能超过 20。
关于java - HttpComponents PoolingHttpClientConnectionManager maxPerRoute 和 maxTotal?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19347350/
有人可以向我解释一下 setMaxPerRoute(max) 和 setMaxTotal(max) 在引用 HttpComponents PoolingHttpClientConnectionMana
我是一名优秀的程序员,十分优秀!