В чем смысл "на основе маршрута" в PoolingClientConnectionManager?

ThreadSafeClientConnManager устарел и вводится новый метод PoolingClientConnectionManager.

Документация PoolingClientConnectionManager сообщает

Управляет пулом клиентских подключений и может обслуживать соединение запросы из нескольких потоков выполнения. Соединения объединены на на основе маршрута.

Мой вопрос

В чем смысл каждого маршрута здесь?

Ответ 1

Это относится к HttpRoute. HttpRoute предназначен для определения нескольких приложений, работающих на одном и том же веб-сервере.

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

Ответ 2

Положите это простым термином, для каждого маршрута - для каждого хоста, к которому вы подключаетесь.

PoolingHttpClientConnectionManager поддерживает максимальный лимит соединений по каждому маршруту и ​​в целом. По умолчанию эта реализация создаст не более двух одновременных соединений для каждого маршрута и не более 20 подключений.

Ответ 3

Если вы хотите понять, что такое маршрут (и, следовательно, то, что на самом деле означает маршрут) Node.js express tutorial имеет хорошая ссылка/описание того, что такое маршрут. Это комбинация URI (/URL), метода HTTP-запроса (GET, POST и т.д.) И одного или нескольких обработчиков для конечной точки. Здесь "обработчик" - это функция или метод, который выполняется, когда вы нажимаете на данный URL-адрес, используя специальный метод HTTP-запроса (например, GET и т.д.).