连接池设计

数据库与下游连接复用开销高,需要连接池:池大小按并发与下游容量核算,超时要覆盖取连接与执行两个阶段,避免取连接排队拖垮整条链路。

尺寸按并发上限与下游可承载连接数综合确定
超时等待连接超时单独设置,且计入端到端预算
健康探活、失效剔除与重建;通过借还监控发现泄漏

参数清单(以主流池实现为例)

参数作用配置要点
池大小上限同时借出的连接数上限按并发与下游连接上限反推
取连接超时等待借出的时间上限单独设置并计入端到端预算
空闲回收长时间空闲连接释放短于下游主动断开的时间
连接寿命上限连接重建周期与下游超时错开,避免复用到失效连接
泄漏检测借用超时告警记录疑似泄漏的调用栈
池大小超过下游承载能力时会转化为排队等待:连接池解决复用,不能凭空扩容下游。

易错点

  • 池设置过大,数据库连接数超限拒绝服务
  • 等待连接无超时,请求全部阻塞在取连接阶段

数据来源与参考

  • HikariCP 文档:About Pool Sizing
  • 《性能之巅(第 2 版)》(Gregg)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌