【发布时间】:2018-12-20 17:06:42
【问题描述】:
我想监控一个 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() 并没有被弃用,而是返回一个自定义的连接管理器,它只暴露了它背后真正的连接管理器实例的一些方法。
那么,如何访问这些统计信息?这些对我们很有帮助。
【问题讨论】: