簡體   English   中英

對本地主機的HttpClient請求的性能和生命周期

[英]Performance and life-cycle of a HttpClient request to the localhost

我們有一個稱為Solr的服務,它提供http-api。 有一個使用它的Java客戶端。 目前,它們(服務和客戶端)還不夠大,因此我們可以將它們都部署在同一台計算機上,以避免任何網絡延遲。 我們仍然想使用http-api來使用該服務,以便將來的解耦將是無縫的。

我不是計算機網絡專家,但試圖弄清楚http請求的生命周期。 但這適用於真正的Web http請求。 如果您可以在下面進行驗證,那就太好了。

  • 請求從應用程序層開始,並被包裝幾次,直到到達物理層
  • 與DNS聯系以獲取IP地址
  • 通過TCP將請求發送到目標IP。
  • 沿着最短/最聰明的路徑到達目的地。
  • 目標偵聽端口號,並將傳入的信息轉發到正確的應用程序。
  • 應用程序返回響應,然后以類似的方式將其發送回源。

  1. 如果將請求發送到URL“ localhost:8983”,那么在性能方面,它與實際的Web請求相比如何? 默認情況下,將取消上述步驟之一。

    如果很重要,請注意,我正在使用Apache HttpClient(4.3)與同一台計算機上托管的Solr服務進行通信。

  2. 它們是否屬於同一JVM是否重要?

    任何幫助表示贊賞。

1.)沒有任何變化。 所有請求將遵循您在問題中概述的相同路徑。 唯一的區別是,從客戶端到服務器(本地主機)只有一跳。

2.)不,沒關系。 仍然必須有一個http請求。 該http請求將不在乎消息是否將發送到同一jvm。 它仍然會按照您在問題中概述的步驟進行操作。

在同一台機器上通過http向solr jvm的請求應該非常快,我不必為此擔心太多。 但是,您應該嘗試通過使用線程連接管理器和默認的單線程管理器來確保正確配置了http客戶端。 您可能還需要根據負載確定連接池的大小,但是請求應該很快。

暫無
暫無

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

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