在 Spring Boot 中配置 Hikari 连接池

更新于 2025-12-30

Tom Hombergs 2018-08-21

1. 概述

Hikari 是一个 JDBC DataSource 的实现,提供了连接池机制。与其他实现相比,它更轻量且性能更优。

本快速教程将展示如何在 Spring Boot 3 应用程序中配置使用 Hikari DataSource

2. 在 Spring Boot 3.x 中配置 Hikari

根据官方参考文档,Hikari 是 Spring Boot 3 中默认的 DataSource 实现

如果你使用了 spring-boot-starter-data-jpaspring-boot-starter-jdbc,Hikari 的依赖会自动包含进来。因此,在基于 Spring Boot 3.x 的应用中,若想使用 Hikari,无需额外操作

不过,如果你想使用最新版本的 Hikari,则需要在 pom.xml 中显式添加其依赖:

<dependency>
    <groupId>com.zaxxer</groupId>
    <artifactId>HikariCP</artifactId>
    <version>7.0.2</version>
</dependency>

3. 调优 Hikari 配置参数

Hikari 相较于其他 DataSource 实现的一大优势是提供了丰富的配置参数。

我们可以通过在配置文件(如 application.propertiesapplication.yml)中使用前缀 spring.datasource.hikari 并附加 Hikari 参数名来设置这些参数:

spring.datasource.hikari.connectionTimeout=30000
spring.datasource.hikari.idleTimeout=600000
spring.datasource.hikari.maxLifetime=1800000
...

在上述配置中,我们将连接超时时间设为 30,000 毫秒(30 秒),空闲超时时间设为 600,000 毫秒(10 分钟),连接最大生命周期设为 1,800,000 毫秒(30 分钟)。这些参数值可根据应用程序的具体需求进行调整。

所有可用的 Hikari 参数及其详细说明,可参阅 Hikari GitHub 页面 或 Spring 官方文档。

4. 使用 JMX 监控 Hikari

Hikari 支持通过 JMX(Java Management Extensions)监控其连接池。JMX 是一种 Java 技术,可在运行时管理和监控应用程序。启用 Hikari 的 JMX 功能后,我们可以深入了解连接池的健康状况和性能表现。

要启用 Hikari 的 JMX 支持,只需在 application.propertiesapplication.yml 中添加以下配置属性:

spring.datasource.hikari.registerMbeans=true

启用后,Hikari 会通过 JMX 暴露其管理 Bean(MBeans)。我们可以使用各种 JMX 工具和库来访问并分析这些信息。常用的 JMX 客户端包括:

  • JConsole
  • VisualVM
  • Prometheus + JMX Exporter

通过连接到运行应用程序的 Java 进程,并使用 JMX 客户端,我们可以获取 Hikari 提供的多项关键指标,例如:

  • 连接数量:当前活跃连接数
  • 池利用率:正在使用的连接所占百分比
  • 连接获取时间:从池中获取连接所需的时间
  • 连接创建时间:新建数据库连接所需的时间
  • 连接超时次数:因超时而未能成功获取连接的尝试次数

这些指标有助于我们理解连接池的行为,并识别潜在的性能瓶颈或问题。我们还可以基于这些指标搭建监控与告警系统,在必要时采取相应措施。

5. 结论

本文介绍了如何在 Spring Boot 3.x 应用中配置 Hikari DataSource,充分利用 Spring Boot 的自动配置能力。此外,我们还强调了启用 Hikari JMX 监控的重要性,它为我们提供了对连接池行为的深入洞察和有效控制手段。