首页 > 基础资料 博客日记

【Java】全网最详细的SpringBoot集成HikariCP连接池配置

2025-01-17 08:00:09基础资料围观30

文章【Java】全网最详细的SpringBoot集成HikariCP连接池配置分享给大家,欢迎收藏Java资料网,专注分享技术知识

前言

  从 SpringBoot2.0 版本开始,使用HikariCP 做为默认的数据库连接池, HikariCP 在性能上表现优异,被公认为是最快的 JDBC 连接池之一,它还具有良好的稳定性和广泛的兼容性,能够与大多数主流的 JDBC 框架和数据库引擎无缝集成。因此,无论是从性能还是从易用性的角度来看,HikariCP 都是目前springboot项目的首选,如果大家在搭建框架需要HikariCP可以直接看本篇文章,详细配置可以直接复制使用。

一、HikariCP 配置

  在yml文件中我们可以通过spring:data:source:type指定连接池,通过配置type为com.zaxxer.hikari.HikariDataSource指定HikariCP做为连接池,如果使用springboot2.0及以上不配置type默认使用HikariCP:

spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/dbname
    username: root
    password: Droot
    driver-class-name: com.mysql.jdbc.Driver
    type: com.zaxxer.hikari.HikariDataSource
    hikari:
      # 连接池中允许的最小连接数。缺省值:10
      minimum-idle: 10
      # 连接池中允许的最大连接数。缺省值:10
      maximum-pool-size: 20
      # 自动提交 默认值为 true
      auto-commit: true
      # 连接允许在池中闲置的最长时间,一个连接idle状态的最大时长(毫秒),超时则被释放(retired),缺省:10分钟
      idle-timeout: 600000
      # 连接池名字,用于日志和监控
      pool-name: mysql-pool
      # 一 个连接的生命时长(毫秒),超时而且没被使用则被释放(retired),缺省:30分钟,建议设置比数据库超时时长少30秒
      max-lifetime: 600000
      # 等待连接池分配连接的最大时长(毫秒),超过这个时长还没可用的连接则发生SQLException, 缺省:30秒
      connection-timeout: 30000
      #连接测试查询语句,用于验证连接是否有效
      connection-test-query: select 1
      #验证连接有效性的超时时间,单位为毫秒,默认值 5000 毫秒(5 秒)
      validation-timeout: 30000
      #设置事务隔离级别,不配置此项默认遵从数据库的配置,读已提交TRANSACTION_READ_COMMITTED,此外还有读未提交TRANSACTION_READ_UNCOMMITTED,可重复度TRANSACTION_REPEATABLE_READ,串行化TRANSACTION_SERIALIZABLE
      transaction-isolation: TRANSACTION_READ_COMMITTED
      #是否将连接设置为只读模式,默认false
      readOnly: false

参数释义:

参数说明缺省值
minimum-idle连接池中允许的最小连接数。缺省值:10;如果空闲连接低于此值并且连接池中的总连接数少于maximumPoolSize值,则HikariCP将尝试创建新的连接。考虑到系统的内存和 CPU 资源,过大的 minimum-idle 可能会导致资源浪费。通常,minimum-idle 的值可以设置为 maximum-pool-size 的一半或更小。10
maximum-pool-size连接池中允许的最大连接数。缺省值:10,这个值将决定到数据库后端的最大实际连接数。对此的合理价值最好由您的执行环境决定,根据实际环境配置,通常设置为核心数的2倍较优10
auto-commit自动提交 默认值为 truetrue
idle-timeout连接允许在池中闲置的最长时间,一个连接idle状态的最大时长(毫秒),超时则被释放(retired),缺省:10分钟600000
pool-name连接池名字,用于日志和监控
aumax-lifetime一 个连接的生命时长(毫秒),超时而且没被使用则被释放(retired),缺省:30分钟,建议设置比数据库超时时长少30秒1800000
connection-timeout等待连接池分配连接的最大时长(毫秒),超过这个时长还没可用的连接则发生SQLException, 缺省:30秒30000
connection-test-query连接测试查询语句,用于验证连接是否有效
validation-timeout验证连接有效性的超时时间,单位为毫秒,默认值 5000 毫秒(5 秒)5000
transaction-isolation设置事务隔离级别,不配置此项默认遵从数据库的配置,读已提交TRANSACTION_READ_COMMITTED,此外还有读未提交TRANSACTION_READ_UNCOMMITTED,可重复度TRANSACTION_REPEATABLE_READ,串行化TRANSACTION_SERIALIZABLE
readOnly是否将连接设置为只读模式,默认falsefalse

为了帮助更多像你一样的读者,我将持续在专栏中分享技术干货和实用技巧。如果你觉得这篇文章对你有帮助,可以考虑关注我的专栏,谢谢。


文章来源:https://blog.csdn.net/weixin_43219644/article/details/144086696
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!

标签:

相关文章

本站推荐

标签云