springboot数据库默认连接池HikariCP_包括hikaricp依赖-程序员宅基地

技术标签: 连接池  mysql  

1 HikariCP

HikariCP 来源于日语,「光」的意思,意味着它很快!可靠的数据源,spring boot2.0 已经将 HikariCP 做为了默认的数据源链接池。

官网详细地说明了HikariCP所做的一些优化,总结如下:

字节码精简 :优化代码,直到编译后的字节码最少,这样,CPU缓存可以加载更多的程序代码;
优化代理和拦截器:减少代码,例如 HikariCP 的 Statement proxy 只有 100 行代码,只有BoneCP 的十分之一;
自定义数组类型(FastStatementList)代替 ArrayList:避免每次 get() 调用都要进行 range check,避免调用 remove() 时的从头到尾的扫描;
自定义集合类型(ConcurrentBag):提高并发读写的效率;

2 数据库连接池

所有数据库链接池都遵守基本的设计规则,实现 javax.sql.DataSource 接口,里面最重要的方法就是 Connection getConnection() throws SQLException; 用于获取一个Connection, 一个Connection就是一个数据库链接,就是一个TCP链接,建立TCP链接是需要进行3次握手的,这降低来链接的使用效率,也是各种数据库链接池存在的原因。
数据库链接池通过事先建立好 Connection 并缓存起来,这样应用需要做数据查询的时候,直接从缓存中拿到 Connection 就可以使用来。数据库链接池还能够检测异常的链接,释放闲置的链接。

3 常用属性配置

如下属性都不是必须的,属于可选配置

autoCommit:

此属性控制从池返回的连接的默认自动提交行为。 它是一个布尔值。 默认值:true

connectionTimeout:

此属性控制客户端(即您)等待池中连接的最大毫秒数。 如果在没有连接可用的情况下超过此时间,则将抛出 SQLException。 最低可接受的连接超时为 250 毫秒。 默认值:30000(30秒)

idleTimeout:

此属性控制允许连接在池中空闲的最长时间。 此设置仅在 minimumIdle 定义为小于maximumPoolSize 时适用。 一旦池达到 minimumIdle 连接,空闲连接将不会退出。 连接是否空闲退出的最大变化为 +30 秒,平均变化为 +15 秒。 在此超时之前,连接永远不会被空闲。 值为 0 表示永远不会从池中删除空闲连接。 允许的最小值为 10000 毫秒(10秒)。

maxLifetime:

此属性控制池中连接的最长生命周期。 使用中的连接永远不会退役,只有当它关闭时才会被删除。 在逐个连接的基础上,应用轻微的负衰减以避免池中的大量灭绝。 我们强烈建议设置此值,它应比任何数据库或基础结构强加的连接时间限制短几秒。 值 0 表示没有最大生命周期(无限生命周期),当然主题是 idleTimeout 设置。 默认值:1800000(30分钟)

connectionTestQuery:

此属性控制池中连接的最长生命周期。 使用中的连接永远不会退役,只有当它关闭时才会被删除。 在逐个连接的基础上,应用轻微的负衰减以避免池中的大量灭绝。 我们强烈建议设置此值,它应比任何数据库或基础结构强加的连接时间限制短几秒。 值 0 表示没有最大生命周期(无限生命周期),当然主题是 idleTimeout 设置。 默认值:1800000(30分钟)

minimumIdle:

此属性控制 HikariCP 尝试在池中维护的最小空闲连接数。 如果空闲连接低于此值并且池中的总连接数小于 maximumPoolSize,则 HikariCP 将尽最大努力快速有效地添加其他连接。 但是,为了获得最高性能和对峰值需求的响应,我们建议不要设置此值,而是允许 HikariCP 充当固定大小的连接池。 默认值:与 maximumPoolSize 相同

maximumPoolSize:

此属性控制允许池到达的最大大小,包括空闲和正在使用的连接。 基本上,此值将确定数据库后端的最大实际连接数。 对此的合理值最好由您的执行环境决定。 当池达到此大小,并且没有可用的空闲连接时,对 getConnection() 的调用将在超时前阻塞最多 connectionTimeout 毫秒。 请阅读有关游泳池尺寸的信息。 默认值:10

metricRegistry:

此属性仅可通过编程配置或 IoC 容器获得。 此属性允许您指定池使用的 Codahale / Dropwizard MetricRegistry 的实例来记录各种度量标准。 有关详细信息,请参阅度量维基页面。 默认值:无

healthCheckRegistry:

此属性仅可通过编程配置或IoC容器获得。 此属性允许您指定池使用的 Codahale / Dropwizard HealthCheckRegistry 的实例来报告当前的健康信息。 有关详细信息,请参阅运行状况检查维基页面。 默认值:无

poolName:

此属性表示连接池的用户定义名称,主要显示在日志记录和 JMX 管理控制台中,以标识池和池配置。 默认值:自动生成

标题

示例:
Spring Boot 2.0 默认连接池就是 Hikari 了,所以引用 parents 后不用专门加依赖
Spring Boot 2.x 默认使用 HikariCP
Spring Boot 1.x 默认使用的是 Tomcat 连接池,需要移除 tomcat-jdbc,配置 spring.datasource.type=com.zaxxer.hikari.hIkari.HikariDatasource

spring.datasource.url=jdbc:mysql://localhost:3306/beta?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=true
spring.datasource.username=cicd
spring.datasource.password=Home123*
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

# 可选配置
spring.datasource.type=com.zaxxer.hikari.hIkari.HikariDatasource
spring.datasource.hikari.minimumIdle=10

# Hikari连接池的设置
## Hikari 时间单位都是毫秒
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
## 连接池名字
spring.datasource.hikari.pool-name=MyHikariCP
## 最小空闲连接数量
spring.datasource.hikari.minimum-idle=10
## 空闲连接存活最大时间,默认60000010分钟)
spring.datasource.hikari.idle-timeout=600000
## 连接池最大连接数,默认是10
spring.datasource.hikari.maximum-pool-size=10
## 此属性控制从池返回的连接的默认自动提交行为,默认值:true
spring.datasource.hikari.auto-commit=true
## 此属性控制池中连接的最长生命周期,值0表示无限生命周期,默认180000030分钟
spring.datasource.hikari.max-lifetime=1800000
## 数据库连接超时时间,默认30秒,即30000
spring.datasource.hikari.connection-timeout=30000在这里插入代码片
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_41536934/article/details/112293145

智能推荐

c# 调用c++ lib静态库_c#调用lib-程序员宅基地

文章浏览阅读2w次,点赞7次,收藏51次。四个步骤1.创建C++ Win32项目动态库dll 2.在Win32项目动态库中添加 外部依赖项 lib头文件和lib库3.导出C接口4.c#调用c++动态库开始你的表演...①创建一个空白的解决方案,在解决方案中添加 Visual C++ , Win32 项目空白解决方案的创建:添加Visual C++ , Win32 项目这......_c#调用lib

deepin/ubuntu安装苹方字体-程序员宅基地

文章浏览阅读4.6k次。苹方字体是苹果系统上的黑体,挺好看的。注重颜值的网站都会使用,例如知乎:font-family: -apple-system, BlinkMacSystemFont, Helvetica Neue, PingFang SC, Microsoft YaHei, Source Han Sans SC, Noto Sans CJK SC, W..._ubuntu pingfang

html表单常见操作汇总_html表单的处理程序有那些-程序员宅基地

文章浏览阅读159次。表单表单概述表单标签表单域按钮控件demo表单标签表单标签基本语法结构<form action="处理数据程序的url地址“ method=”get|post“ name="表单名称”></form><!--action,当提交表单时,向何处发送表单中的数据,地址可以是相对地址也可以是绝对地址--><!--method将表单中的数据传送给服务器处理,get方式直接显示在url地址中,数据可以被缓存,且长度有限制;而post方式数据隐藏传输,_html表单的处理程序有那些

PHP设置谷歌验证器(Google Authenticator)实现操作二步验证_php otp 验证器-程序员宅基地

文章浏览阅读1.2k次。使用说明:开启Google的登陆二步验证(即Google Authenticator服务)后用户登陆时需要输入额外由手机客户端生成的一次性密码。实现Google Authenticator功能需要服务器端和客户端的支持。服务器端负责密钥的生成、验证一次性密码是否正确。客户端记录密钥后生成一次性密码。下载谷歌验证类库文件放到项目合适位置(我这边放在项目Vender下面)https://github.com/PHPGangsta/GoogleAuthenticatorPHP代码示例://引入谷_php otp 验证器

【Python】matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距-程序员宅基地

文章浏览阅读4.3k次,点赞5次,收藏11次。matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距

docker — 容器存储_docker 保存容器-程序员宅基地

文章浏览阅读2.2k次。①Storage driver 处理各镜像层及容器层的处理细节,实现了多层数据的堆叠,为用户 提供了多层数据合并后的统一视图②所有 Storage driver 都使用可堆叠图像层和写时复制(CoW)策略③docker info 命令可查看当系统上的 storage driver主要用于测试目的,不建议用于生成环境。_docker 保存容器

随便推点

网络拓扑结构_网络拓扑csdn-程序员宅基地

文章浏览阅读834次,点赞27次,收藏13次。网络拓扑结构是指计算机网络中各组件(如计算机、服务器、打印机、路由器、交换机等设备)及其连接线路在物理布局或逻辑构型上的排列形式。这种布局不仅描述了设备间的实际物理连接方式,也决定了数据在网络中流动的路径和方式。不同的网络拓扑结构影响着网络的性能、可靠性、可扩展性及管理维护的难易程度。_网络拓扑csdn

JS重写Date函数,兼容IOS系统_date.prototype 将所有 ios-程序员宅基地

文章浏览阅读1.8k次,点赞5次,收藏8次。IOS系统Date的坑要创建一个指定时间的new Date对象时,通常的做法是:new Date("2020-09-21 11:11:00")这行代码在 PC 端和安卓端都是正常的,而在 iOS 端则会提示 Invalid Date 无效日期。在IOS年月日中间的横岗许换成斜杠,也就是new Date("2020/09/21 11:11:00")通常为了兼容IOS的这个坑,需要做一些额外的特殊处理,笔者在开发的时候经常会忘了兼容IOS系统。所以就想试着重写Date函数,一劳永逸,避免每次ne_date.prototype 将所有 ios

如何将EXCEL表导入plsql数据库中-程序员宅基地

文章浏览阅读5.3k次。方法一:用PLSQL Developer工具。 1 在PLSQL Developer的sql window里输入select * from test for update; 2 按F8执行 3 打开锁, 再按一下加号. 鼠标点到第一列的列头,使全列成选中状态,然后粘贴,最后commit提交即可。(前提..._excel导入pl/sql

Git常用命令速查手册-程序员宅基地

文章浏览阅读83次。Git常用命令速查手册1、初始化仓库git init2、将文件添加到仓库git add 文件名 # 将工作区的某个文件添加到暂存区 git add -u # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,不处理untracked的文件git add -A # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,包括untracked的文件...

分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120-程序员宅基地

文章浏览阅读202次。分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120

【C++缺省函数】 空类默认产生的6个类成员函数_空类默认产生哪些类成员函数-程序员宅基地

文章浏览阅读1.8k次。版权声明:转载请注明出处 http://blog.csdn.net/irean_lau。目录(?)[+]1、缺省构造函数。2、缺省拷贝构造函数。3、 缺省析构函数。4、缺省赋值运算符。5、缺省取址运算符。6、 缺省取址运算符 const。[cpp] view plain copy_空类默认产生哪些类成员函数

推荐文章

热门文章

相关标签