You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在HttpClient5中使用setMaxConnPerRoute和setMaxConnTotal?(适配Spring Boot3迁移)

HttpClient 5.2 替换 maxConnPerRoute 和 maxConnTotal 配置

在 HttpClient 5.x 版本中,连接池的核心配置(单路由最大连接数、全局最大连接数)已从 HttpClientBuilder 迁移至连接管理器本身。另外需要注意:BasicHttpClientConnectionManager 是单连接管理器,不支持多连接池配置,若要设置连接数上限,需使用 PoolingHttpClientConnectionManager。

修改后的代码示例

// 构建带连接池配置的连接管理器
PoolingHttpClientConnectionManager cm = PoolingHttpClientConnectionManagerBuilder.create()
        // 对应原 setMaxConnPerRoute,设置每个路由的最大连接数
        .setDefaultMaxPerRoute(50)
        // 对应原 setMaxConnTotal,设置全局最大连接数
        .setMaxTotal(200)
        // 保留原有的连接配置
        .setConnectionConfig(connConfig)
        .build();

CloseableHttpClient client = HttpClientBuilder.create()
        .disableAutomaticRetries()
        .setDefaultRequestConfig(RequestConfig.custom()
                .setConnectionRequestTimeout(Timeout.ofMilliseconds(30000))
                .build())
        .setConnectionManager(cm)
        .build();

关键变化说明

  • 连接管理器替换:将 BasicHttpClientConnectionManager 替换为 PoolingHttpClientConnectionManager,后者才支持连接池的多连接管理逻辑。
  • 配置迁移:
    • 原 setMaxConnPerRoute(int) 对应现在的 setDefaultMaxPerRoute(int)(需在连接管理器构建器中配置)
    • 原 setMaxConnTotal(int) 对应现在的 setMaxTotal(int)(需在连接管理器构建器中配置)
  • 若偏好手动创建连接管理器,也可直接调用实例方法:
PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager();
cm.setDefaultMaxPerRoute(50);
cm.setMaxTotal(200);
cm.setConnectionConfig(connConfig);

内容的提问来源于stack exchange,提问作者Pankaj Nargesh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 06:14:59