Мониторинг пула подключений PoolingHttpClientConnectionManager - PullRequest
0 голосов
/ 20 декабря 2018

Я хотел бы отслеживать пул соединений Apache httpComponents PoolingHttpClientConnectionManager, но не могу найти способ доступа к нему.

Мы создаем наш HttpClient, используя следующий компоновщик:

HttpClient httpClient = HttpClientBuilder.create()
            .setMaxConnTotal(maxConnections)
            .setMaxConnPerRoute(maxConnectionsPerRoute)
            .build();

Это создает экземпляр InternalHttpClient, который содержит экземпляр PoolingHttpClientConnectionManager, который содержит экземпляр CPool.

CPool даст нам доступ к T getRoutes() и PoolStats getStats(T) - что выглядит многообещающе для меня.Но я не могу действительно узнать, как получить доступ к этому CPool.

HttpClient.getConnectionManager() устарела.InternalHttpClient.getConnectionManager() не считается устаревшим, но возвращает пользовательский менеджер соединений, который предоставляет только некоторые методы реального экземпляра диспетчера соединений за ним.

Итак, как получить доступ к этой статистике?Это было бы очень полезно для нас.

1 Ответ

0 голосов
/ 23 декабря 2018

Использование ConnPoolControl реализовано PoolingHttpClientConnectionManager

PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager();
ConnPoolControl<HttpRoute> connPoolControl = cm;
CloseableHttpClient client = HttpClients.custom()
        .setConnectionManager(cm)
        .build();
...