springboot2中HikariCP连接池的相关配置问题

 更新时间:2022年12月22日 15:18:15   作者:蓝色格子  
这篇文章主要介绍了springboot2中HikariCP连接池的相关配置问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

springboot2 HikariCP连接池相关配置

项目中使用了springboot2.1.4作为框架,数据库链接池选用了号称非常快的也是springboot默认支持的HikariCP作为连接池。

引入springboot完全支持,所以不需要引入额外的jar,配置文件如下:

spring:
  application:
    name: framework-manage
  profiles:
    active: dev
  #数据库连接
  datasource:
    url: jdbc:mysql://localhost:3306/rz_test?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=CTT
    username: root
    password: root
    #连接池
    hikari:
      minimum-idle: 5
      maximum-pool-size: 15
      auto-commit: true
      idle-timeout: 30000
      pool-name: DatebookHikariCP
      max-lifetime: 120000
      connection-timeout: 30000
      connection-test-query: SELECT 1

在刚开始配置时候,将max-lifetime设置为1800000(网上很多博客设置均为这个),隔上一段时间不连接,就会出现以下警告,需要等待四五个这种警告后,才能请求回数据。

DatebookHikariCP - Failed to validate connection
com.mysql.cj.jdbc.ConnectionImpl@23338be2 (No operations allowed after connection closed.)
. Possibly consider using a shorter maxLifetime value.

修改过数据库的相关配置,还是不行,后来翻译了下这段话,发现是说可能考虑使用较短的maxLifetime值,这个值最小是30000,于是将其修改为30000后,又出现了下面这个警告:

DatebookHikariCP - idleTimeout is close to or more than maxLifetime, disabling it.

这个只是在启动时候出现,并不影响操作,后来查询发现,设置idleTimeout 时候有一个规则,即如果idleTimeout+1秒>maxLifetime 且 maxLifetime>0,则会被重置为0(代表永远不会退出);如果idleTimeout!=0且小于10秒,则会被重置为10秒。

于是将max-lifetime设置为了120000,这个问题不在出现。

HikariCP常用的参数配置

1.autoCommit

自动提交从池中返回的连接,默认为true。

2.connectionTimeout

等待来自池的连接的最大毫秒数,默认为30000,如果小于250毫秒,则被重置回30秒。

3.idleTimeout

连接允许在池中闲置的最长时间,默认为600000,即10分钟。

如果idleTimeout+1秒>maxLifetime 且 maxLifetime>0,则会被重置为0(代表永远不会退出);如果idleTimeout!=0且小于10秒,则会被重置为10秒。

只有当minimumIdle小于maximumPoolSize时,这个参数才生效,当空闲连接数超过minimumIdle,而且空闲时间超过idleTimeout,则会被移除。

4.maxLifetime

池中连接最长生命周期。默认为1800000,如果不等于0且小于30秒则会被重置回30分钟。

5.minimumIdle

控制连接池空闲连接的最小数量,当连接池空闲连接少于minimumIdle,而且总共连接数不大于maximumPoolSize时,HikariCP会尽力补充新的连接。

为了性能考虑,不建议设置此值,而是让HikariCP把连接池当做固定大小的处理,默认minimumIdle与maximumPoolSize一样。

当minIdle<0或者minIdle>maxPoolSize,则被重置为maxPoolSize,该值默认为10。

6.maximumPoolSize

池中最大连接数,包括闲置和使用中的连接。

默认为10。

如果maxPoolSize小于1,则会被重置。

当minIdle<=0被重置为DEFAULT_POOL_SIZE则为10;如果minIdle>0则重置为minIdle的值。

7.poolName

连接池的用户定义名称,主要出现在日志记录和JMX管理控制台中以识别池和池配置。

默认为HikariPool-1。

8.readOnly

从池中获取的连接是否默认处于只读模式。

默认为false。

9.connection-test-query

如果您的驱动程序支持JDBC4,我们强烈建议您不要设置此属性。

这是针对不支持JDBC4的“传统”驱动程序Connection.isValid() API。

这是在连接从池中获得连接以确认与数据库的连接仍然存在之前将要执行的查询。

再一次,尝试运行没有此属性的池,如果您的驱动程序不符合JDBC4的要求,HikariCP将记录一个错误以告知您。

默认值:无

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java实现三子棋游戏

    Java实现三子棋游戏

    这篇文章主要为大家详细介绍了Java实现三子棋游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • Spring中的@PropertySource注解源码详细解析

    Spring中的@PropertySource注解源码详细解析

    这篇文章主要介绍了Spring中的@PropertySource注解源码详细解析,@PropertySource注解,标注在配置类@Configuration上面,下面主要分析一下@PropertySource注解的处理过程,也就是怎么把配置信息从.properies文件放到environment中的,需要的朋友可以参考下
    2024-01-01
  • 解读Jvm的内存结构与GC及jvm参数调优

    解读Jvm的内存结构与GC及jvm参数调优

    这篇文章主要介绍了解读Jvm的内存结构与GC及jvm参数调优方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • java逐行读取文件(读取文件每一行、按行读取文件)附带详细代码

    java逐行读取文件(读取文件每一行、按行读取文件)附带详细代码

    这篇文章主要给大家介绍了关于java逐行读取文件(读取文件每一行、按行读取文件)的相关资料,读取文件是我们在日常工作中经常遇到的一个需求,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-09-09
  • springboot如何读取自定义配置项

    springboot如何读取自定义配置项

    这篇文章主要介绍了springboot如何读取自定义配置项的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2018-05-05
  • 浅谈Spring中Bean的作用域、生命周期

    浅谈Spring中Bean的作用域、生命周期

    这篇文章主要介绍了浅谈Spring中Bean的作用域、生命周期,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • win7下安装 JDK 基本流程

    win7下安装 JDK 基本流程

    这篇文章主要介绍了win7下安装 JDK 基本流程,需要的朋友可以参考下
    2014-05-05
  • MySQL MyBatis 默认插入当前时间方式

    MySQL MyBatis 默认插入当前时间方式

    这篇文章主要介绍了MySQL MyBatis 默认插入当前时间方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-10-10
  • 浅析Java基于Socket的文件传输案例

    浅析Java基于Socket的文件传输案例

    这篇文章主要针对Java基于Socket的文件传输案例进行详细解析,具有一定的参考价值,感兴趣的朋友可以参考一下
    2016-02-02
  • java.io.NotSerializableException异常的问题及解决

    java.io.NotSerializableException异常的问题及解决

    这篇文章主要介绍了java.io.NotSerializableException异常的问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12

最新评论