写点什么

HikariCP- 技术专题 - 配置介绍和使用

发布于: 2021 年 04 月 14 日
HikariCP-技术专题-配置介绍和使用

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,什么是 HikariCPHikari 就是 日文【光】的意思,大家可以自行百度

下面附上改数据源的具体配置,另外 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 datasourcespring.datasource.driver-class-name=com.mysql.jdbc.Driverspring.datasource.url=jdbc:mysql://localhost:3306/muxin?useUnicode=true&characterEncoding=UTF-8&autoReconnect=truespring.datasource.username=rootspring.datasource.password=root# Hikari will use the above plus the following to setup connection poolingspring.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=28740000spring.datasource.hikari.connection-test-query=SELECT 1
复制代码


用户头像

我们始于迷惘,终于更高水平的迷惘。 2020.03.25 加入

🏆 【酷爱计算机技术、醉心开发编程、喜爱健身运动、热衷悬疑推理的”极客狂人“】 🏅 【Java技术领域,MySQL技术领域,APM全链路追踪技术及微服务、分布式方向的技术体系等】 🤝未来我们希望可以共同进步🤝

评论

发布
暂无评论
HikariCP-技术专题-配置介绍和使用