首页 > 基础资料 博客日记
【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 | 自动提交 默认值为 true | true |
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 | 是否将连接设置为只读模式,默认false | false |
为了帮助更多像你一样的读者,我将持续在专栏中分享技术干货和实用技巧。如果你觉得这篇文章对你有帮助,可以考虑关注我的专栏,谢谢。
文章来源:https://blog.csdn.net/weixin_43219644/article/details/144086696
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
标签: