Apache HttpRoute - 定义路由

Apache HttpRoute - defining a route

我正在使用 Apache PoolingHttpClientConnectionManager 创建一个连接池,连接到我网络上的不同服务。文档说 连接在每个路由的基础上合并 路线的含义对我来说并不完全清楚。

我发现了另一个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

以上每条都算作一条路线吗?

PoolingHttpClientConnectionManager 实现了 ConnPoolControl<HttpRoute>,所以我们可以假设我们正在讨论的路由是 HttpRoute 的。

在文档中,写着 HttpRoute

The route for a request.

HttpRoute 的构造函数之一是以下形式:

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

查看 RouteInfo.LayerType,我们看到:

The layering type of a route. Plain routes are established by connecting or tunnelling. Layered routes are established by layering a protocol such as TLS/SSL over an existing connection. Protocols can only be layered over a tunnel to the target, or or over a direct connection without proxies.

总而言之,在这种情况下,术语路由应理解为网络路由,而不是从 url 到您问题的标签 "routes" 所定义的控制器的映射。