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

Spring Boot 3.3升级至3.4后出现Too many open files问题求排查方向

Spring Boot 3.4.x升级后"too many open files"问题的可能原因方向
  • Apache HttpClient 5版本间的连接池行为变更
    HttpClient 5.3.1到5.4.4的迭代中,可能调整了连接池的默认参数或回收策略:

    • 空闲连接超时、连接存活时间的默认值被延长,导致空闲连接长期占用socket未被清理;
    • 连接池最大连接数、单路由最大连接数的默认值降低,同时连接复用逻辑变更,新请求不断创建新连接,旧连接无法被复用或回收。
  • RestTemplate与HttpClient整合的自动配置变化
    Spring Boot 3.4.x对RestTemplate的自动配置可能有调整:

    • 默认的PoolingHttpClientConnectionManager初始化逻辑变更,未正确启动连接池的空闲连接清理线程,导致空闲连接堆积;
    • 新版本不再自动为RestTemplate配置连接池的关闭钩子,应用运行过程中连接池无法主动回收闲置连接。
  • 请求处理逻辑的隐性兼容性问题
    虽然请求代码逻辑未变,但新版本HttpClient对连接释放的触发条件有变化:

    • 在某些异常场景(如请求超时、响应体解析失败)下,连接未被正确归还到连接池,直接泄漏;
    • 如果存在响应体未被完全读取或显式关闭的情况,新版本HttpClient不再自动释放连接,导致socket长期处于ESTABLISHED状态。
  • 其他组件升级引发的连锁问题
    Spring Boot 3.4.x升级会带动一系列依赖组件版本更新:

    • 嵌入式Tomcat、Jetty等容器的版本升级,可能引入HTTP连接处理的泄漏问题;
    • 数据库连接池、消息队列客户端等依赖的新版本,也可能存在文件描述符泄漏,需排查这些组件的连接配置是否正常。

内容的提问来源于stack exchange,提问作者Lukas Stampf

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 19:07:13