【问题标题】:Apache HttpRoute - defining a routeApache HttpRoute - 定义路由
【发布时间】:2017-02-13 00:39:08
【问题描述】:

我正在使用 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

以上每一条都被视为一条路线吗?

【问题讨论】:

    标签: java http routes apache-httpclient-4.x


    【解决方案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 到控制器的映射,如您问题的标签“路由”所定义的那样。

    【讨论】:

    • 我不明白。答案是是还是不是?
    • 当文档说:Connections are pooling on per route based时,术语route必须被理解为网络路由。所以答案是肯定的。
    • 射击。我在哪里可以找到定义?路线 = a + b + c?所有这些模糊都是痛苦的。
    • 很好地回答了 ++1。但网络路由可能因请求而异。虽然,我不是 100% 确定。但这不是我关心的问题。我担心的是,http://server:port1/somepathhttp://server:port2/somepath 会被视为单一路线还是不同路线。请回答。这是我要找的。​​span>
    猜你喜欢
    • 2023-01-27
    • 1970-01-01
    • 2017-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多