【问题标题】:Java - AsyncHttpClient - Fire and ForgetJava - AsyncHttpClient - 一劳永逸
【发布时间】:2018-11-21 11:56:14
【问题描述】:

我有一个用例,我需要在 Fire and 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 获取响应时间:p99 = 500ms

通过上述配置和 http 获取响应时间,我得到 20k rps(输出)。

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

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

还有其他推荐的方式来使用 async-http-client 实现 Fire and Forget 吗?

谢谢。

【问题讨论】:

    标签: java asynchttpclient


    【解决方案1】:

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

    有关更多详细信息,请查看 ReadTimeoutTimerTask 类 https://github.com/AsyncHttpClient/async-http-client/blob/master/client/src/main/java/org/asynchttpclient/netty/timeout/ReadTimeoutTimerTask.java

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-11
      • 1970-01-01
      • 2016-07-20
      • 2017-06-16
      • 2016-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多