spring boot中配置hikari连接池属性方式
程序员文章站
2022-07-26 12:52:57
目录hikari配置hikari连接池配置说明spring boot配置hikari连接池属性事件起因与一个简单应用经常发生young gc,甚至在没有请求量的情况下也经常发生gc (allocati...
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$node[]" loaded by "<system class loader>".
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.url = jdbc:mysql://localhost:3306/ssm?useunicode=true&characterencoding=utf-8&usessl=false spring.datasource.username = 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
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
推荐阅读
-
spring boot中配置hikari连接池属性方式
-
spring boot配置MySQL数据库连接、Hikari连接池和Mybatis的简单配置方法
-
spring boot初体验之将配置文件中的属性和bean关联起来
-
Spring Boot 中的项目属性配置
-
jasypt 集成spring、spring boot 对配置文件中的配置和属性进行加密
-
Spring boot 读取配置文件(application.yml)中的属性值
-
spring boot 读取配置文件(application.yml)中的属性值
-
Spring boot 读取配置文件(application.yml)中的属性值
-
spring boot 读取配置文件(application.yml)中的属性值
-
spring boot 配置文件(application.yml)中的属性值配置