Java - AsyncHttpClient - огонь и забыть - PullRequest
0 голосов
/ 21 ноября 2018

У меня есть сценарий использования, когда мне нужно сделать тысячи запросов HTTP Get в режиме Fire and Forget.

Я использую aync-http-client <<a href="https://github.com/AsyncHttpClient/async-http-client" rel="nofollow noreferrer">https://github.com/AsyncHttpClient/async-http-client> для достижения этой цели..

async-http-client: 2.5.4

Java 11

Я использую следующую конфигурацию для DefaultAsyncHttpClientConfig.Builder:

  1. setMaxConnections(10000)
  2. setIoThread(6)
  3. setKeepAlive(true)

HTTP Время ответа при получении: p99 = 500 мс

Iя получаю 20k rps (исходящих) с указанным выше конфигом и http получает время ответа.

Я не добавил явно тайм-ауты.

Теперь я хочу понять, приведет ли добавление readTimeOut 100 мс кувеличение числа RPS.Предполагается, что после 100 мс тайм-аута, async-http-client освободит соединение с пулом для использования другими.

Есть ли другой рекомендуемый способ достижения Fire и Forget с использованием async-http-client?

Спасибо.

1 Ответ

0 голосов
/ 21 ноября 2018

Тайм-аут чтения по умолчанию составляет 60000 мс.Вы думаете, что в правильном направлении уменьшение значения свойства Read Timeout освободит соединение.

Для получения дополнительной информации изучите класс ReadTimeoutTimerTask по адресу https://github.com/AsyncHttpClient/async-http-client/blob/master/client/src/main/java/org/asynchttpclient/netty/timeout/ReadTimeoutTimerTask.java

...