Я использую async http-клиент ning, чтобы достичь неблокирующей доброты. Выполняя проверку яблок и яблок (не блокируя против блокировки), я вижу, что неблокирующая версия обслуживает больше образцов запросов, однако клиент async-http создает больше потоков по сравнению с его блокирующей копией. Ожидается ли это или что-то, что мне не хватает?Async http client (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-соединения создается поток для запуска обратного вызова при завершении ввода-вывода в клиенте async http.
Великий, спасибо так много – Vinodh
https://github.com/AsyncHttpClient/async-http-client/blob/master/api/src/main/java/org/asynchttpclient/AsyncHttpClientConfig.java Вы возражали бы, чтобы точно определить строка 160 немного больше (например, имя функции, что посмотреть там), поскольку она изменилась в недавнем выпуске –
Ссылки здесь не работают !!! –