PoolingHttpClientConnectionManager日志中'total available'含义咨询
关于PoolingHttpClientConnectionManager日志中
total available的含义 含义解释
total available指的是连接池中当前处于空闲状态、可直接被复用的连接总数。这些连接已经建立完成,但未被任何请求占用,能立刻分配给新的请求使用。
结合你提供的日志示例:
h.i.c.PoolingHttpClientConnectionManager : Connection request: [route: {tls}->http://xxxxx][total available: 0; route allocated: 1 of 10; total allocated: 1 of 20]
这里total available: 0说明此时连接池中没有空闲连接可复用,因此需要创建新连接处理当前请求(对应total allocated:1 of 20,已分配1个连接)。
相关逻辑补充
- 请求完成后,连接会被释放回连接池,此时
total available数值会增加,直到达到setMaxTotal设置的总连接上限。 - 若
total available大于0,新请求会优先复用这些空闲连接,避免重复创建连接带来的性能损耗。
代码与日志参数对应
你配置的连接池核心参数:
private RestTemplate createRestTemplate(HttpHost proxy) throws NoSuchAlgorithmException, KeyStoreException, KeyManagementException { CloseableHttpClient httpClient; PoolingHttpClientConnectionManager connManager = new PoolingHttpClientConnectionManager(); connManager.setMaxTotal(20); // 连接池最大总连接数 connManager.setDefaultMaxPerRoute(10); // 单路由最大连接数 }
日志参数对应关系:
total allocated: 1 of 20:当前已分配的总连接数(含正在使用和空闲的)为1,未超出总上限20route allocated:1 of 10:当前目标路由(http://xxxxx)已分配的连接数为1,未超出单路由上限10total available:0:当前无空闲可复用的连接
内容的提问来源于stack exchange,提问作者Harrison
相关产品推荐
相关产品推荐

