誰かが私に何を説明しsetMaxPerRoute(max)
、 setMaxTotal(max)
HttpComponents PoolingHttpClientConnectionManager に関して何をすることができますか?
12834 次
1 に答える
39
これらの設定は、接続プールのサイズを制御します。
setMaxTotal(max)
接続プールの全体的な接続制限を定義します。setMaxPerRoute(max)
1 つの HTTP ルートあたりの接続制限を定義します。単純なケースでは、これはターゲット ホストごとの制限として理解できます。フードの下では、もう少し興味深いことがあります:のように、それぞれがホストのチェーンを表すHttpClient
いくつかのオブジェクトを維持します。接続はルートごとにプールされます。単純なケースでは、デフォルトのルート構築メカニズムを使用していて、プロキシ サポートを提供していない場合、ルートにはターゲット ホストのみが含まれる可能性が高いため、ルートごとの接続プール制限は実質的にホストごとの制限になります。HttpRoute
proxy1 -> proxy2 -> targetHost
例:
と があるとsetMaxPerRoute(5)
しますsetMaxTotal(20)
。つまり、ターゲット ホストごとに最大 5 つの接続を同時に使用できます。たとえば、google.com との 5 つの接続、oracle.com との別の 5 つの接続などです。ただし、開いている接続の合計数は、通信しているホストの数に関係なく 20 を超えることはできません。
于 2013-10-13T16:24:30.807 に答える