HikariCP 数据库连接池配置

HikariCP 数据库连接池配置规范(v2025-12)

适用场景:对外提供接口请求,数据库类型 PostgreSQL / MySQL / Oracle

目标:高并发、低延迟、故障隔离


1 连接池大小与分组

参数 计算公式 示例(4C8G)
minimumIdle (CPU 核数 × 2) + 磁盘数 (4×2)+2 = 10
maximumPoolSize minIdle × (2~5) 10 × 5 = 50

约束

  • 所有节点 maximumPoolSize 总和 ≤ 数据库实例最大连接数
  • 接口线程与定时任务 必须分离双连接池,避免互相挤占

2 连接可用性校验

场景 推荐做法
JDBC4 驱动(PG 42.x+) 无需 connectionTestQuery,Hikari 自动调用 isValid()
旧驱动 显式 connectionTestQuery: SELECT 1
参数 建议值 说明
maxLifetime 900 000 ms(15 min) 到期强制回收,防止"僵"连接
leakDetectionThreshold 5 000 ms 持有超 5 s 未归还即打印堆栈,方便排查泄露
复制代码
日志全是无效堆栈,真正泄露被淹没
先拿 P99 SQL 耗时 做基线,再设 leak = P99 × 2;同时把阈值做成 环境变量,灰度时可动态降

3 超时配置(生产网络稳定,宜激进)

参数 默认 建议 备注
connectionTimeout 30 000 ms 2 000 ms 拿连接最大等待
validationTimeout 5 000 ms 1 000 ms 检测连接有效性;必须 < connectionTimeout

4 JDBC 层高可用

数据库 超时参数 单位 用法示例
PostgreSQL socketTimeout jdbc:postgresql://h1,h2/db?socketTimeout=10
MySQL socketTimeout 毫秒 jdbc:mysql://h1,h2/db?socketTimeout=10000
Oracle oracle.jdbc.ReadTimeout 毫秒 连接属性单独配置

主库不可用时,驱动按 URL 列表自动 fail-over 到同城灾备节点

超时值 ≈ 接口最大 SLA,防止慢查询霸占连接


5 配置模板(YAML)

yaml 复制代码
spring:
  datasource:
    jdbc-url: jdbc:postgresql://host1:5432,host2:5432/mydb?socketTimeout=10
    username: ${DB_USER}
    password: ${DB_PWD}
    driver-class-name: org.postgresql.Driver
    hikari:
      pool-name: HikariCP_master
      minimum-idle: 10              # 见公式
      maximum-pool-size: 50         # ≤ minIdle × 5
      connection-timeout: 3000      # 3 s
      validation-timeout: 2000      # 2 s
      leak-detection-threshold: 6000 # 6 s
      max-lifetime: 900000          # 15 min
相关推荐
数厘7 分钟前
2.7SQL 四大分类:理解与避坑
数据库·sql
亮子AI15 分钟前
【PostgreSQL】推荐几个PostgreSQL管理工具
数据库·postgresql
AI应用实战 | RE27 分钟前
011、向量数据库入门:Embeddings原理与ChromaDB实战
开发语言·数据库·langchain·php
captain37631 分钟前
联合查询
数据库
华农DrLai37 分钟前
怎么用大模型生成推荐的训练数据?Data Augmentation怎么做?
数据库·人工智能·大模型·nlp·prompt
XDHCOM1 小时前
ORA-31215: DBMS_LDAP PL/SQL无效LDAP修改值,Oracle报错故障修复与远程处理方案,快速解决连接配置难题
数据库·sql·oracle
深蓝电商API1 小时前
Redis在海淘场景下的缓存策略设计
数据库·redis·缓存·海淘
杰克尼1 小时前
redis(day04-达人探店)
数据库·redis·缓存
一叶飘零_sweeeet2 小时前
击穿 MySQL 性能天花板:InnoDB Buffer Pool 核心架构、LRU 优化与生产调优全解
数据库·mysql
indexsunny2 小时前
互联网大厂Java面试实战:从Spring Boot到微服务架构的深度探讨
java·数据库·spring boot·安全·微服务·监控·面试实战