HTTP连接池配置

更新时间:

高并发Web服务、频繁API调用、分布式系统通信等场景,使用HTTP连接池减少延迟,优化资源,提高响应速度和系统稳定性。本文为您介绍Java(异步)SDK对于HTTP连接池的配置。

SDK中,所有异步HTTP请求均由PoolingAsyncClientConnectionManager统一管理,其默认的连接池参数配置如下:

配置参数

说明

maxConnections

连接池大小,默认值128。

maxConnectionsPerRoute

设置每路由最大连接数,默认值128。

maxIdleTimeOut

设置连接在连接池中的最大空闲时间,默认30000毫秒。

keepAlive

连接的空闲存活时间,默认值20000毫秒。

connectRequestTimeout

获取连接的超时时间,默认值30000毫秒。

如上述默认配置不符合您的业务场景,您可以重新配置相关参数以调整连接池设置。例如,在高并发场景下,可以适当提高maxConnections、maxConnectionsPerRouteconnectRequestTimeout的值。

示例代码如下:

HttpClient httpClient = new ApacheAsyncHttpClientBuilder()
        .maxConnections(10) // 设置连接池大小,默认值128。
        .maxConnectionsPerRoute(10) // 设置每路由最大连接数,默认值128。
        .maxIdleTimeOut(Duration.ofMillis(20000)) // 设置连接在连接池中的最大空闲时间,默认30000毫秒。
        .keepAlive(Duration.ofMillis(5000)) // 连接的空闲存活时间,默认值20000毫秒。
        .connectRequestTimeout(Duration.ofMillis(5000)) // 获取连接的超时时间,默认值30000毫秒。
        .build();
        
AsyncClient client = AsyncClient.builder()
        .httpClient(httpClient)
        .credentialsProvider(credentialProvider) // 本示例省略credentialProvider实现过程...
        .build();