监控 PoolingHttpClientConnectionManager 的连接池
Monitor connection pool of PoolingHttpClientConnectionManager
我想监控 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()
并没有被弃用,而是returns一个自定义的连接管理器,它只暴露了它背后真正的连接管理器实例的一些方法。
那么,如何访问这些统计数据?这些对我们很有帮助。
使用由 PoolingHttpClientConnectionManager
实现的 ConnPoolControl
PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager();
ConnPoolControl<HttpRoute> connPoolControl = cm;
CloseableHttpClient client = HttpClients.custom()
.setConnectionManager(cm)
.build();
我想监控 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()
并没有被弃用,而是returns一个自定义的连接管理器,它只暴露了它背后真正的连接管理器实例的一些方法。
那么,如何访问这些统计数据?这些对我们很有帮助。
使用由 PoolingHttpClientConnectionManager
ConnPoolControl
PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager();
ConnPoolControl<HttpRoute> connPoolControl = cm;
CloseableHttpClient client = HttpClients.custom()
.setConnectionManager(cm)
.build();