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

作者:loophome 时间:2022-11-13 06:06:44 

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

来源:https://blog.csdn.net/loophome/article/details/94458251

标签:springboot,hikari,连接池,属性
0
投稿

猜你喜欢

  • spring mvc4的日期/数字格式化、枚举转换示例

    2021-11-07 09:49:11
  • C#中的委托和事件

    2023-11-27 12:33:34
  • SpringCloud Eureka的使用教程

    2022-03-23 22:30:59
  • android scrollview 滑动到顶端或者指定位置的实现方法

    2022-04-27 00:12:40
  • 积累Visual Studio 常用快捷键的动画演示

    2022-11-29 08:29:46
  • 非常实用的侧滑删除控件SwipeLayout

    2023-02-01 14:52:39
  • struts2简介_动力节点Java学院整理

    2023-06-24 02:04:07
  • C#使用smtp发送带附件的邮件实现方法

    2022-11-03 17:53:39
  • C#装饰者模式实例分析

    2022-07-16 00:33:53
  • Android获取apk签名指纹的md5值(防止重新被打包)的实现方法

    2023-06-23 04:26:12
  • Java擦除和转换实例分析

    2022-03-30 02:19:45
  • SpringBoot整合WebSocket的客户端和服务端的实现代码

    2023-03-30 04:19:07
  • Java设计模式之建造者模式

    2023-09-03 14:40:37
  • Android指纹解锁方法解析

    2023-06-27 15:37:58
  • C#处理Access中事务的方法

    2021-07-01 13:43:39
  • Spring中SmartLifecycle和Lifecycle的作用和区别

    2023-11-18 22:55:50
  • 关于WebView 重定向行为导致的多次加载的问题

    2022-09-19 02:45:44
  • C# DateTime与时间戳转换实例

    2022-12-12 08:34:12
  • java判断用户输入的是否至少含有N位小数的实例

    2021-06-01 02:56:42
  • Android图片三级缓存开发

    2023-12-03 22:42:43
  • asp之家 软件编程 m.aspxhome.com