簡體   English   中英

支持流水線的基於 Java 的 HTTP 客戶端

[英]Java based HTTP Client which supports Pipelining

您知道任何支持 HTTP/1.1 ( http://en.wikipedia.org/wiki/HTTP_pipelining ) 的 HTTP 流水線選項的免費 Java 庫嗎?

我不認為你會發現任何支持管道襯里的常見的。 Jetty HttpClient 似乎從文檔中支持它,但我無法做到。

請注意,Pipeline 與 keep-alive 不同。 保持活動只是意味着重用連接,但它仍然可能一次只通過連接發送一個請求。 使用流水線,您可以通過同一個連接同時發送多個請求並等待它們各自的響應。

HTTPClient 顯然支持這里的流水線:

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

但我沒有親自嘗試過,無法驗證這一點。

hotpotato將支持真的很快流水線。 在性能方面,它優於 Apache 的 HTTP 客戶端,尤其是在高並發環境中(多個線程使用同一客戶端實例)。

我仍然需要發布結果,但是在 LAN 測試中,我得到了 ~7000req/s(hotpotato)與 ~100req/s(apache 的)。 當然,很多優點必須歸功於 Netty,令人驚嘆的框架 hotpotato 建立在 ;)

如果您不需要花哨的成熟客戶端,請查看此處以獲取更簡單的版本。

我意識到我的答案大約有一年了,但由於這是“java http 流水線”的頂級鏈接之一,我認為它是相關的。

Hotpotato 現在確實支持流水線操作,根據我有限的經驗,到目前為止它運行良好。 還有一個很好的 API 來啟動。

http://hotpotato.biasedbit.com/

編輯:看起來這個項目現在沒有維護,作者推薦異步 HTTP 客戶端: https : //github.com/ning/async-http-client/

Apache HttpComponents Core 5支持 HTTP/1.1 流水線。 這個例子可以在這里找到。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM