JooLun Plus 百科 ⬇ 源码下载

04.23 SpringBoot4 升级后数据源连接池配置

102353 于 2026-10-17 14:14:33 +08:00 修改了此页面

Spring Boot 4 数据源连接池配置

固定基线

当前项目在 Spring Boot 4 生态下,运行时连接池统一使用 Hikari。

主库 / 固定业务库统一采用以下公共基线:

spring:
  datasource:
    dynamic:
      lazy: false
      hikari:
        minimum-idle: 0
        maximum-pool-size: 20
        idle-timeout: 60000

配置含义如下:

  • lazy: false
    • 启动阶段直接初始化数据源
    • 数据库配置错误或连通性异常会在启动时直接暴露
  • minimum-idle: 0
    • 空闲服务不长期保留数据库连接
  • maximum-pool-size: 20
    • 作为当前项目统一连接池上限
  • idle-timeout: 60000
    • 超出最小空闲数的连接空闲 60 秒后回收

动态租户库基线

按 tenantId 动态新增的租户库连接池,不沿用主库的固定空闲连接策略,统一采用以下基线:

  • spring.datasource.sharding.minimum-idle: 0
  • spring.datasource.sharding.idle-timeout: 60000
  • spring.datasource.sharding.lazy: true

动态租户库配置规则如下:

  • minimum-idle: 0
    • 不为每个已访问租户长期保留固定空闲连接
  • idle-timeout: 60000
    • 空闲连接在 60 秒后回收
  • lazy: true
    • 先注册数据源路由,首次实际访问时再建立物理连接

固定实现要求

当前代码层固定要求如下:

  • 动态租户库创建时,单独下发上述动态租户池参数
  • YAML Provider 负责注册 master,JDBC Provider 只负责注册数据源表中的扩展数据源
  • 同一个数据源名称只允许由一个 Provider 创建
  • JDBC 连通性校验统一使用 try-with-resources
  • 连通性校验连接在校验完成后立即关闭,不允许保留为悬挂连接

部署规则

公共配置统一放在所有服务都会加载的 Nacos 公共配置中,例如:

  • application-dev.yml
  • application-test.yml
  • application-prod.yml

如需对高压服务单独放大连接池,只覆盖对应服务自己的 maximum-pool-size,不要改动态租户库基线。

数据库容量要求

MySQL 连接数需要覆盖以下总量:

所有固定业务库连接池上限之和 + 动态租户库运行期峰值连接 + 其他客户端连接 + 余量

如果数据库同时被其他系统共用,需要单独核算连接预算。