Java — AsyncHttpClient — выстрелил и забыл

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

Я использую aync-http-client ‹ https://github.com/AsyncHttpClient/async-http-client › для этого.

асинхронный http-клиент: 2.5.4

Ява 11

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

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

HTTP Получить время ответа: p99 = 500 мс

Я получаю 20 тыс. об/с (исходящие) с приведенной выше конфигурацией и временем отклика http.

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

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

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

Спасибо.


person user2139262    schedule 21.11.2018    source источник


Ответы (1)


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

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

person Rohit Yadav    schedule 21.11.2018