3

シングルトンDefaultHttpClientを使用して、1 秒あたり約 12 以上の並列 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)ですか?

4

1 に答える 1

2

バージョン 4.2 以降では、永続的な接続の使用からのフィードバックに基づいて、使用可能な接続プールのサイズを動的に調整するために、BackoffManager を使用できます。

http://hc.apache.org/httpcomponents-client-ga/httpclient/apidocs/org/apache/http/impl/client/AIMDBackoffManager.html

于 2012-11-12T15:11:39.347 に答える