2016-10-04 111 views
3

我使用Apache PoolingHttpClientConnectionManager爲我的網絡上的差異服務創建連接池。該文檔說明,連接按照每個路由進行彙總。我不完全清楚路線是什麼意思。Apache HttpRoute - 定義路由

我發現了另一個similar的問題,但答案還是有點不清楚。如果我們在同一臺服務器上有兩個應用程序,每個應用程序都有多個REST API,那麼每個API都被認爲是不同的路線?

例如,如果我們有以下幾點:

http://server1/app1/books 
http://server1/app1/magazines 
http://server1/app2/cars 
http://server1/app2/cars/color/red 
http://server1/app2/cars/color/black/doors/2 

將分別以上的被視爲一個單一的路線?

回答

4

PoolingHttpClientConnectionManager implements ConnPoolControl<HttpRoute>,所以我們可以推測我們正在談論的路線是HttpRoute的。

在本文檔中,它寫道,HttpRoute

該請求的路徑。

一個HttpRoute構造函數的形式爲:

HttpRoute(HttpHost target, InetAddress local, HttpHost[] proxies, boolean secure, RouteInfo.TunnelType tunnelled, RouteInfo.LayerType layered) 

RouteInfo.LayerType來看,我們可以看到:

的分層型的路線。平原路線由 連接或隧道建立。分層路由通過在現有連接上分層協議(如TLS/SSL)來建立。協議 只能在通向目標的隧道上,或通過不帶代理的直接連接進行分層。

總之,在這種情況下,術語路由應該被理解爲一個網絡路由,而不是從URL到控制器的映射,如問題的標記「路由」所定義。