什么是在PoolingClientConnectionManager“每一路径基础”的含义?(Wha

2019-07-31 01:58发布

ThreadSafeClientConnManager已过时,新的方法引入PoolingClientConnectionManager 。

PoolingClientConnectionManager的文件说,

管理客户端连接池,并能服务于来自多个执行线程的连接请求。 连接池每路径基础。

我的问题

什么是每路径基础这里的含义是什么?

Answer 1:

它是指HttpRoute。 该HttpRoute是划定同一Web服务器上运行多个应用程序。

http://hc.apache.org/httpcomponents-client-ga/httpclient/apidocs/org/apache/http/conn/routing/HttpRoute.html

它使用方法如下:

ClientConnectionRequest connRequest = connMrg.requestConnection(
        new HttpRoute(new HttpHost("localhost", 80)), null);
ManagedClientConnection conn = connRequest.getConnection(10, TimeUnit.SECONDS);
try {
    BasicHttpRequest request = new BasicHttpRequest("GET", "/");
    conn.sendRequestHeader(request);
    HttpResponse response = conn.receiveResponseHeader();
    conn.receiveResponseEntity(response);
    HttpEntity entity = response.getEntity();
    if (entity != null) {
        BasicManagedEntity managedEntity = new BasicManagedEntity(entity, conn, true);
        // Replace entity
        response.setEntity(managedEntity);
    }
    // Do something useful with the response
    // The connection will be released automatically 
    // as soon as the response content has been consumed
} catch (IOException ex) {
    // Abort connection upon an I/O error.
    conn.abortConnection();
    throw ex;
}

来源: http://hc.apache.org/httpcomponents-client-ga/tutorial/html/connmgmt.html



Answer 2:

把它简单来说,每个路由每个要连接到主机的手段。

PoolingHttpClientConnectionManager维持每路径基础,在总连接数的最大限制。 每默认情况下此实现将创建每个给定的路线不超过2个并发连接,并在总量不20个连接。



Answer 3:

如果你想了解一个途径是什么(什么,因此每个路由的真正含义) 的Node.js的明确教程有一个很好的参考/描述的路线是什么。 它是一个URI(/ URL),一个HTTP请求方法(GET,POST等),以及用于该端点的一个或多个处理程序的组合。 这里的“处理器”是当你使用特定的HTTP请求方法打到指定的URL(如GET等)的被执行的函数或方法。



文章来源: What is the meaning of “per route basis” in PoolingClientConnectionManager?
标签: java apache http