0

全て

HttpClient4 を使用して、同時にターゲット サーバーにリクエストを送信することで RESTful API ストレス テストを実行したいのですが、1 つの HttpClient インスタンスを使用できますか?

CloseableHttpClient httpclient = HttpClients.createDefault();

各同時スレッドを新しい異なる HttpClient インスタンスに許可する必要があるかどうか?

クライアントインスタンスのリソースを減らしながら、同じ同時数を維持するように設計を改善する方法。たとえば、200 スレッドで各リクエストを同時に送信できるようにします。

PoolingHttpClientConnectionManager を使用すると、常に同時に実行できないようです。

4

3 に答える 3

1

1 つの HttpClient インスタンスを使用できますか?

HttpClient複数のスレッド間で単一のインスタンスを共有しても問題ありません。アプリケーション全体に対して 1 つのインスタンスを使用することもできます。

PoolingHttpClientConnectionManager を使用すると、常に同時に実行できないようです。

PoolingHttpClientConnectionManager同時リクエスト実行が可能です。setDefaultMaxPerRoute(...)と を使用してプールサイズを拡大する必要があるかもしれませんsetMaxTotal(...)。これらの設定の使用方法の詳細な説明については、こちらの回答を参照してください。

より正確な回答を得るには、SSCCEを投稿することを検討してください。

于 2013-10-14T08:23:39.480 に答える
0

できますが、スレッドの多い PC が必要です。コードに10億のスレッドを記述しても、プロセッサでそれを調整することはできません。プロセッサにはコアの制限があり、同時にX個のスレッドしか動作しないためです。このスレッドをすべて実行しても、同時には機能せず、非同期で機能します。

また、自転車をイメージせず、テストにjmeterを使用することをお勧めします。

于 2013-10-14T08:24:04.507 に答える