基于Java的HTTP客户端,支持流水线

您知道任何支持HTTP / 1.1的HTTP流水线选项的免费Java库( http://en.wikipedia.org/wiki/HTTP_pipelining )吗?

HTTPClient显然支持流水线操作:

http://www.innovation.ch/java/HTTPClient/

但我没有亲自尝试过,也无法validation这一点。

我认为你不会发现任何支持管道衬里的常见产品。 Jetty HttpClient似乎从文档中支持它,但我无法做到这一点。

请注意,Pipeline与keep-alive不同。 保持活动只意味着重用连接,但它仍然可以通过连接一次只发送一个请求。 使用管道衬里,您可以通过同一连接同时发送多个请求,并等待各自的响应。

hotpotato将很快支持流水线操作。 性能方面,它优于Apache的HTTP客户端,特别是在高并发环境中(使用相同客户端实例的多个线程)。

我仍然需要发布结果,但在LAN测试中,我得到~7000req / s(hotpotato)vs~100req / s(apache’s)。 当然,必须要有很多优点去Netty,这个惊人的框架hotpotato建立在它之上;)

如果您不需要花哨的成熟客户端,请查看更简单的版本。

我意识到我的答案大约有一年了,但由于这是“java http pipelining”的顶级链接之一,我认为这是相关的。

Hotpotato确实现在支持流水线操作,而且在我有限的经验中,它到目前为止一直很好用。 还有一个很好的API来启动。

http://hotpotato.biasedbit.com/

编辑:看起来这个项目现在没有维护,作者推荐Async HTTP客户端: https : //github.com/ning/async-http-client/