私はning非同期のhttpクライアントを使用して、ノンブロッキングの良さを実現しています。リンゴとリンゴのテスト(非ブロッキング対ブロッキング)を行うと、非ブロッキングバージョンがより多くのリクエストサンプルを処理しているのが見えますが、非同期httpクライアントはブロッキング対応のスレッドと比較してスレッドを増やしています。これが期待されているのか、私が紛失しているのか非同期httpクライアント(ning)がさらにスレッドを作成していますか?
は、ここで私は接続のスレッドプールを作成していますストレステスト
Async Http Client
jMeter - 2 threads, 120 seconds, 1 sec ramp up
Peak threads : 270
Heap usage: 600mb
Peak cpu usage: 30%
Total samples: 18228
Blocking version
jMeter - 2 threads, 120 seconds, 1 sec ramp up
Peak threads: 118
heap usage: 260mb
cpu usage: 18%
total samples: 1472
からの数字です(それらを再利用)
AsyncHttpClientConfig.Builder builder = new AsyncHttpClientConfig.Builder();
builder.setRequestTimeoutInMs(2000);
builder.setMaximumConnectionsPerHost(10);
builder.setMaximumConnectionsTotal(100);
client = new AsyncHttpClient(builder.build());
は、私がここで行方不明です何かはありますか?スレッドを作成しているのを見るためにスレッドダンプを見てみましたが、役に立たないものは見つかりませんでした。 私は、非同期httpクライアントのI/O完了時にコールバックを発生させるために、各http接続が生成されるスレッドがあることを考えています。
グレート、本当にありがとうございました – Vinodh
https://github.com/AsyncHttpClient/async-http-client/blob/master/api/src/main/java/org/asynchttpclient/AsyncHttpClientConfig.java あなたがピンポイントで特定する気だろう最近のリリースで変更されたように、ライン160少し(関数名のように、そこに見える) –
ここのリンクは動作していません! –