HikariCP- 技术专题 - 配置介绍和使用
发布于: 2021 年 04 月 14 日
JNDI DataSource Factory (Tomcat, etc.)
HikariCP includes a JNDI DataSource factory that can be used with Tomcat or other containers.Example (Tomcat) configurations:
Driver-based:
<Resource name="jdbc/OracleHikari" auth="Container"
factory="com.zaxxer.hikari.HikariJNDIFactory"
type="javax.sql.DataSource"
minimumIdle="5"
maximumPoolSize="10"
connectionTimeout="300000"
jdbcUrl="jdbc:oracle:thin:@orcl_server:1521:orcl"
dataSource.implicitCachingEnabled="true"
dataSource.user="user"
dataSource.password="pwd" />
复制代码
DataSource-based:
<Resource name="jdbc/OracleHikari" auth="Container"
factory="com.zaxxer.hikari.HikariJNDIFactory"
type="javax.sql.DataSource"
minimumIdle="5"
maximumPoolSize="10"
connectionTimeout="300000"
dataSourceClassName="oracle.jdbc.pool.OracleDataSource"
dataSource.implicitCachingEnabled="true"
dataSource.user="user"
dataSource.password="pwd"
dataSource.url="jdbc:oracle:thin:@orcl_server:1521:orcl"/>
复制代码
A MariaDB example:
<Context>
<Resource name="jdbc/myDs" auth="Container"
factory="com.zaxxer.hikari.HikariJNDIFactory"
type="javax.sql.DataSource"
minimumIdle="5"
maximumPoolSize="10"
connectionTimeout="300000"
dataSourceClassName="org.mariadb.jdbc.MySQLDataSource"
dataSource.serverName="localhost"
dataSource.port="3306"
dataSource.databaseName="myDatabase"
dataSource.user="username"
dataSource.password="password"/>
</Context>
复制代码
数据源从druid迁移到HikariCP
要比 druid 不知道好多少倍,druid 其实在某些情况下是有问题的,另外 springboot2.0 也已经把默认
的数据源改为了 HikariCP,什么是 HikariCP,Hikari 就是 日文【光】的意思,大家可以自行百度
下面附上改数据源的具体配置,另外 druid 已经不用了:
(除此之外的其他相关配置保持不变,比如你的 hibernate 或者 JPA 或者 Mybatis 都是该咋咋地~)
############################################################
# 配置数据源相关 使用阿里巴巴的 druid 数据源
############################################################
#spring.datasource.url=jdbc:mysql://localhost:3306/muxin
#spring.datasource.username=root
#spring.datasource.password=root
#spring.datasource.driver-class-name=com.mysql.jdbc.Driver
#spring.datasource.druid.initial-size=1
#spring.datasource.druid.min-idle=1
#spring.datasource.druid.max-active=20
#spring.datasource.druid.test-on-borrow=true
#spring.datasource.druid.stat-view-servlet.allow=true
############################################################
# 配置数据源相关 使用 HikariCP 数据源
############################################################
# jdbc_config datasource
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/muxin?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true
spring.datasource.username=root
spring.datasource.password=root
# Hikari will use the above plus the following to setup connection pooling
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
# 等待连接池分配连接的最大时长(毫秒),超过这个时长还没可用的连接则发生SQLException, 默认:30秒
spring.datasource.hikari.connection-timeout=30000
# 最小连接数
spring.datasource.hikari.minimum-idle=5
# 最大连接数
spring.datasource.hikari.maximum-pool-size=15
# 自动提交
spring.datasource.hikari.auto-commit=true
# 一个连接idle状态的最大时长(毫秒),超时则被释放(retired),默认:10分钟
spring.datasource.hikari.idle-timeout=600000
# 连接池名字
spring.datasource.hikari.pool-name=DatebookHikariCP
# 一个连接的生命时长(毫秒),超时而且没被使用则被释放(retired),默认:30分钟 1800000ms,建议设置比数据库超时时长少60秒,参考MySQL wait_timeout参数(show variables like '%timeout%';) -->
spring.datasource.hikari.max-lifetime=28740000
spring.datasource.hikari.connection-test-query=SELECT 1
复制代码
划线
评论
复制
发布于: 2021 年 04 月 14 日阅读数: 27
李浩宇/Alex
关注
我们始于迷惘,终于更高水平的迷惘。 2020.03.25 加入
🏆 【酷爱计算机技术、醉心开发编程、喜爱健身运动、热衷悬疑推理的”极客狂人“】 🏅 【Java技术领域,MySQL技术领域,APM全链路追踪技术及微服务、分布式方向的技术体系等】 🤝未来我们希望可以共同进步🤝
评论