我正在使用单例DefaultHttpClient
来制作每秒十几个并行的HTTP请求。我想知道如何以智能方式为下面的代码中的'PoolingClientConnectionManager'设置值 x(最大总连接数)和 y(每个路由的默认最大连接数)。
我希望PoolingClientConnectionManager
可以帮助我,以便在有负载峰值或负载比平常低得多时我不必更改这些值。我能做什么?或者我是否必须将值设置为总是大于我实际需要的值?
...
PoolingClientConnectionManager poolingClientConnectionManager =
new PoolingClientConnectionManager(sr, 20, TimeUnit.SECONDS);
poolingClientConnectionManager.setMaxTotal(x);
poolingClientConnectionManager.setDefaultMaxPerRoute(y);
return new DefaultHttpClient(poolingClientConnectionManager, new BasicHttpParams());
编辑:说poolingClientConnectionManager.setMaxTotal(Integer.MAX_VALUE)
是一个好主意吗?
答案 0 :(得分:2)
从版本4.2开始,可以使用BackoffManager根据使用持久连接的反馈动态调整可用连接池的大小。