我有一个用例,需要在Fire and Forget模式下发出数千个HTTPGet请求。
我正在使用aync http客户端<https://github.com/AsyncHttpClient/async-http-client>以实现这一点。
异步http客户端:2.5.4
Java 11
我正在为DefaultAsyncHttpClientConfig.Builder
:使用以下配置
setMaxConnections(10000)
setIoThread(6)
setKeepAlive(true)
HTTP获取响应时间:p99=500ms
我用上面的配置和http获取响应时间得到了2万个rps(传出(。
我没有明确添加任何超时。
现在我想了解添加100ms的readTimeOut是否会导致rps数量的增加。假设超时100ms后,异步http客户端将释放到池的连接供其他人使用。
有没有其他推荐的方法可以使用异步http客户端实现Fire and Forget?
谢谢。
默认读取超时为60000毫秒。您的想法是正确的,减少属性读取超时的值将释放连接。
有关更多详细信息,请访问ReadTimeoutTimerTask类https://github.com/AsyncHttpClient/async-http-client/blob/master/client/src/main/java/org/asynchttpclient/netty/timeout/ReadTimeoutTimerTask.java