1. 概述
Hikari 一是个JDBC数据源连接池。与其它连接池相比,它更轻量级且性能更优。
本快速教程将展示如何在基于 Spring Boot 3 的应用程序中配置 Hikari 数据源。
2. 在 Spring Boot 3.x 中配置 Hikari
在 Spring Boot 3 中,Hikari 已经成为了默认的数据源实现,如官方文档所述。
由于 spring-boot-starter-data-jpa
和 spring-boot-starter-jdbc
都包含了对 Hikari 的依赖,因此如果我们基于 Spring Boot 3.x 构建应用,无需做额外配置即可使用 Hikari。
然而,如果我们想使用最新版本,需要在 pom.xml
文件中显式添加 Hikari 的依赖:
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>5.1.0</version>
</dependency>
3. 调整 Hikari 配置参数
Hikari 与其他数据源实现相比的一大优势是提供了大量可配置参数。我们可以通过 spring.datasource.hikari
前缀并附加 Hikari 参数名称来指定这些参数的值:
spring.datasource.hikari.connectionTimeout=30000
spring.datasource.hikari.idleTimeout=600000
spring.datasource.hikari.maxLifetime=1800000
...
在上述配置中,我们将连接超时设置为 30,000 毫秒,空闲超时设置为 600,000 毫秒,最大生命周期设置为 1,800,000 毫秒。根据应用的具体需求,我们可以调整这些参数值。
关于所有可用的 Hikari 参数及其详细说明,可以在 Hikari GitHub 仓库 和 Spring 文档 中找到。
4. 使用 JMX 监控 Hikari
Hikari 支持通过 JMX(Java 管理扩展)监控其连接池。JMX 是一种用于在运行时管理与监控 Java 应用的技术。启用 JMX 可以让我们深入了解连接池的健康状况和性能。
为了启用 Hikari 的 JMX,我们需要在 application.properties
或 application.yml
文件中添加以下配置属性:
spring.datasource.hikari.registerMbeans=true
有了这个配置,Hikari 将通过 JMX 提供管理豆(management beans)。这些豆可以使用 JMX 工具和库来监控和分析连接池。流行的 JMX 客户端包括 JConsole、VisualVM 和带有 JMX 出口的 Prometheus。
通过连接到托管应用的 Java 进程并使用 JMX 客户端,我们可以访问 Hikari 提供的各种指标和属性。关键指标包括:
- 连接数:当前活动连接数量
- 连接池利用率:正在使用的连接比例
- 连接获取时间:从池中获取连接所需的时间
- 新连接创建时间:创建新连接所需的时间
- 连接获取超时次数:连接获取尝试中超时的次数
这些指标有助于我们理解连接池的行为,识别潜在的性能瓶颈或问题。我们可以设置监控和警报系统,跟踪这些指标并在必要时采取相应措施。
5. 总结
本文介绍了如何在 Spring Boot 3.x 应用中配置 Hikari 数据源,利用 Spring Boot 自动配置功能。此外,我们还强调了启用 Hikari JMX 以监控和管理连接池的重要性,从而为我们提供有价值的洞察和对连接池行为的控制。
Spring Boot 3.x 示例代码可在 GitHub 上找到。