Apache DefaultHttpClient:如何设置最大总连接数和默认每个路由的最大连接数

3
我正在使用单例的 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)是一个好主意吗?


你应该有一个关于峰值负载的概念,并相应地调整最大数量。请记住,仅仅因为你设置了一个任意大的最大值,并不能保证底层客户端能够承受非常高的并发负载。连接管理器不能替你完成所有工作。 - Perception
明天我将在一台更好的硬件服务器上部署我的软件,那么我是否需要重新评估我的连接池大小? - Frederic
你可以将这些“调整”变量外部化到特定于环境的配置文件中,并在程序启动时读取它们。 - Perception
1个回答

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接