Java-AsyncHttpClient-解雇

时间:2018-11-21 03:30:14

标签: java asynchttpclient

我有一个用例,我需要在Fire和Forget模式下发出数千个HTTP Get请求。

我正在使用aync-http-client <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 Get响应时间:p99 = 500ms

通过上述配置和http得到响应时间,我得到了20k rps(发送)。

我没有明确添加任何超时。

现在,我想了解添加100ms的readTimeOut是否会导致rps数量增加。假设在100毫秒的超时后,async-http-client将释放与池的连接供其他人使用。

是否还有其他建议的方法来使用async-http-client实现Fire and Forget?

谢谢。

1 个答案:

答案 0 :(得分:0)

默认读取超时为60000毫秒。您正在考虑朝着正确的方向减少属性Read Timeout的值将释放连接。

有关更多详细信息,请参见以下位置的ReadTimeoutTimerTask类 https://github.com/AsyncHttpClient/async-http-client/blob/master/client/src/main/java/org/asynchttpclient/netty/timeout/ReadTimeoutTimerTask.java