Apache HttpRoute - 定义路由

2022-09-04 03:08:52

我正在使用Apache创建一个连接到我网络上的不同服务的连接池。文档指出,连接是按路由池化的。我不完全清楚一条路线是什么意思。PoolingHttpClientConnectionManager

我发现了另一个类似的问题,但答案仍然有点不清楚。如果我们在同一台服务器上有两个应用程序,每个应用程序都有多个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

上述每条路线是否都被视为一条路线?


答案 1

PoolingHttpClientConnectionManager实现 ,所以我们可以假设我们正在谈论的路由是 的。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 到控制器的映射,如您的问题的标记“routes”所定义的那样。


答案 2

推荐