连接池原理与指标

连接池 在应用进程内维护一组到数据库(或其它有连接开销的资源)的 可复用连接,避免每次请求都 TCP+认证+会话初始化,并在并发下 控制最大连接数,保护数据库。


基本生命周期

应用启动 → 创建 initial 条连接(可选)
请求到来 → borrow(若无空闲则新建到 max;若达上限则等待或失败)
使用完毕 → return 到池(连接保持打开、状态复位)
定时任务   → 剔除 idle 过久或校验失败的连接

核心参数(各实现命名略不同)

概念含义
最小空闲池里常驻的最少空闲连接
最大活跃可同时借出的连接上限
最大等待borrow 阻塞超时时间
校验存活validationQuery / isValid,防中间设备掐断

排队与耗尽

活跃连接 == max-active 且都在占用时,新请求 等待(直至超时)或 失败。排查优先:慢 SQL、长事务、泄漏(借了未还)


与其它中间件

  • DruidHikariCP:JDBC 场景主力。
  • 分库分表 下可能多数据源,每池独立配额;见笔记 ShardingSphere(若在库中有)。

相关链接