spring boot中配置hikari连接池属性方式

网友投稿 3187 2022-12-03

spring boot中配置hikari连接池属性方式

spring boot中配置hikari连接池属性方式

目录spring boot配置hikari连接池属性spring-boot默认连接池Hikari配置Hikari连接池配置说明

spring boot配置hikari连接池属性

事件起因与一个简单应用经常发生Young GC,甚至在没有请求量的情况下也经常发生GC (Allocation Failure),后来使用mat工具进行分析,发现mysql连接相关的class居然占了40%+堆内空间。

才发现spring boot的连接池大小没有配置,默认是10个连接,但实际上该应用不需要这么多。

The class "com.mysql.cj.jdbc.AbandonedConnectionCleanupThread",

loaded by "org.apache.catalina.loader.ParallelWebappClassLoader @ 0xf8dfdf30",

occupies 19,279,792 (41.23%) bytes.

The memory is accumulated in one instance of "java.util.concurrent.ConcurrentHashMap$NoSfVomXCIde[]"

loaded by "".

spring-boot默认连接池

spring-boot中,根据以下3个优先级加载连接池

1)如果classpath中有HikariCP,优先选择它

2)如果Tomcat pooling 连接池可用,就会选择它

3)如果以上都没有,则会选择Commons DBCP2连接池

Hikari配置

这里我们做一个非常低的配置(这个仅仅是一个访问量非常低的系统),如果默认的服务器,建议使用默认配置就足够了。

spring.datasource.hikari.maximum-pool-size=2

spring.datasource.hikari.minimum-idle=1

spring.datasource.hikari.idle-timeout=600000

spring.datasource.hikari.max-lifetime=1800000

spring.datasource.hikari.connection-timeout=500

spring.datasource.hikari.login-timeout=500

spring.datasource.hikari.validation-timeout=1000

spring.datasource.hikari.initialization-fail-timeout=1000

参考链接

Hikari连接池配置说明

## 数据库配置

spring.datasource.type=com.zaxxer.hikari.HikariDataSource

spring.datasource.driverClassName = com.mysql.jdbc.Driver

spring.datasource.uhttp://rl = jdbc:mysql://localhost:3306/ssm?useUnicode=true&characterEncoding=utf-8&useSSL=false

spring.datasource.uSfVomXCIsername = root

spring.datasource.password = root

## Hikari 连接池配置 ------ 详细配置请访问:https://github.com/brettwooldridge/HikariCP

## 最小空闲连接数量

spring.datasource.hikari.minimum-idle=5

## 空闲连接存活最大时间,默认600000(10分钟)

spring.datasource.hikari.idle-timeout=180000

## 连接池最大连接数,默认是10

spring.datasource.hikari.maximum-pool-size=10

## 此属性控制从池返回的连接的默认自动提交行为,默认值:true

spring.datasource.hikari.auto-commit=true

## 连接池名称

spring.datasource.hikari.pool-name=MyHikariCP

## 此属性控制池中连接的最长生命周期,值0表示无限生命周期,默认1800000即30分钟

spring.datasource.hikari.max-lifetime=1800000

## 数据库连接超时时间,默认30秒,即30000

spring.datasource.hikari.connection-timeout=30000

spring.datasource.hikari.connection-test-query=SELECT 1

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Feign 使用HttpClient和OkHttp方式
下一篇:关于JWT与cookie和token的区别说明
相关文章

 发表评论

暂时没有评论,来抢沙发吧~