更新时间:2026-10-19 GMT+08:00

客户端连接池介绍

本章节面向使用TaurusDB的应用接入场景,提供连接池的通用配置建议。内容不绑定具体连接池实现。

连接池核心作用

连接池是在应用与数据库之间维护一组可复用物理连接的中间层,核心作用为:

  • 降低建连开销:复用已建立连接,避免每次请求重新进行TCP握手与鉴权,降低延迟与数据库负载。
  • 控制并发与资源占用:以最大连接数约束应用并发,防止突发流量打满数据库连接,保障数据库及其他租户稳定。
  • 提升稳定性:连接复用减少建连抖动,配合探活与重连可在主备倒换、网络抖动后自动恢复。
  • 统一资源管理:集中管理连接的获取、归还、回收与泄漏检测,降低连接泄漏风险。

连接失效场景

物理连接在建立后并非永久可用,以下情况会导致连接在未被感知的情况下失效:

  • 数据库主备倒换、实例重启或维护后,原连接指向的端点不再可达;
  • 网络中间件(NAT、防火墙、负载均衡)因连接长期空闲而单向中断 TCP 连接;
  • 数据库侧主动关闭空闲或超时连接,或网络瞬断导致连接断开。

若连接池未配置探活,业务线程取到的可能是失效连接,首次执行即抛通信异常,且故障呈批量、间歇性,排查困难。

配置原则

各连接池实现的探活与重连默认行为不一致(部分默认空闲检测、部分默认借出检测、部分默认不检测),不能依赖默认值,应在接入时显式配置校验SQL、空闲检测、保活与重连参数,并以所用工具官方文档核对实际行为。

  • 探活失效性检测

    探活通过校验 SQL 在使用前或周期性检测连接有效性,将失效连接在交付业务前剔除或重建,保证业务获取到的均为可用连接。合理组合为:

    • 以空闲时检测作为日常兜底,开销低且不阻塞业务线程;
    • 以保活心跳维持常驻连接活跃,适配防火墙空闲断连与主备倒换;
    • 借出时检测按场景权衡:高并发生产通常不开启,由空闲检测与保活覆盖。
  • 重连

    探活解决的是单条连接失效问题,当数据库整体不可达时(如倒换窗口、维护),需由重连机制保障恢复。连接池层自动重连在故障期持续重试,恢复后自动恢复连接供给,业务无需重启即自愈;若重连关闭,一次故障即需重启应用,恢复成本显著上升。

  • 生命周期

    探活与重连均属被动应对,生命周期管理从主动预防角度补充:设置最大存活时长防止长连接因会话状态累积、路由变更而退化,按上游空闲断连阈值调整保活心跳间隔。

配置要点

  • 探活:显式设置校验 SQL(如 SELECT 1);开启空闲时检测与保活心跳;借出时检测默认不开启,按场景取舍。
  • 重连:保持连接池层自动重连(失败后不中断),URL 不依赖驱动级 autoReconnect。
  • 生命周期:设置最大存活时长;按上游空闲断连阈值调整保活心跳间隔。

配置检查

接入连接池时,建议按以下清单逐项确认:

  1. 校验 SQL 已设置且为轻量查询;
  2. 空闲时检测已开启,回收检测间隔合理;
  3. 常驻连接保活心跳已开启,间隔低于上游空闲断连阈值;
  4. 最大连接数满足数据库容量约束并预留余量;
  5. 连接池层自动重连已启用(失败后不中断),URL 未依赖驱动级 autoReconnect;
  6. 最大存活时长已设置,监控统计与慢 SQL 阈值已开启。