HikariCP
是一款性能极佳的数据库连接池,体积很小,大约130Kb。SpringBoot2.0也已经采用HikariCP作为默认连接池配置.。
HikariCP官方Github
对比各类连接池的基准测试。
和Druid比怎么样
国内用 Druid
的也不少,如果需要在Durid
和 HikariCP
之间进行一个选择,可以先参考双方作者之间的一次沟通 。
SpringBoot整合
SpringBoot对数据源连接池的选择算法
- 如果
HikariCP
可用,那么就会选择HikariCP
- 如果没有
HikariCP
,但是Tomcat-Pool
可用。 就会使用Tomcat-Pool
HikariCP
和Tomcat-Pool
都不可用,但是commons-dbcp
可用的话,就会使用commons-dbcp
如果使用
spring-boot-starter-jdbc
或者spring-boot-starter-data-jpa
“starters”, 会自动依赖HikariCP
。
可以忽略这个算法,通过配置强制SpringBoot使用指定的数据源
spring.datasource.type=
HikariCP的Maven
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
</dependency>
配置项
#------------------------------------------------------------------------------------------------------
# 基本的核心配置,可以在 DataSourceProperties 中找到配置属性的定义
#------------------------------------------------------------------------------------------------------
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/db?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2b8&allowMultiQueries=true
spring.datasource.username=root
spring.datasource.password=root
#------------------------------------------------------------------------------------------------------
# hikari连接池的配置,可以在 HikariConfig 中找到配置属性的定义
#------------------------------------------------------------------------------------------------------
spring.datasource.hikari.allow-pool-suspension=
spring.datasource.hikari.auto-commit=
spring.datasource.hikari.catalog=
spring.datasource.hikari.connection-init-sql=
spring.datasource.hikari.connection-test-query=
spring.datasource.hikari.connection-timeout=
spring.datasource.hikari.data-source-class-name=
spring.datasource.hikari.data-source-j-n-d-i=
spring.datasource.hikari.data-source-properties=
spring.datasource.hikari.driver-class-name=
spring.datasource.hikari.exception-override-class-name=
spring.datasource.hikari.health-check-properties=
spring.datasource.hikari.health-check-registry=
spring.datasource.hikari.idle-timeout=
spring.datasource.hikari.initialization-fail-timeout=
spring.datasource.hikari.isolate-internal-queries=
spring.datasource.hikari.jdbc-url=
spring.datasource.hikari.leak-detection-threshold=
spring.datasource.hikari.login-timeout=
spring.datasource.hikari.max-lifetime=
spring.datasource.hikari.maximum-pool-size=
spring.datasource.hikari.metric-registry=
spring.datasource.hikari.metrics-tracker-factory=
spring.datasource.hikari.minimum-idle=
spring.datasource.hikari.password=
spring.datasource.hikari.pool-name=
spring.datasource.hikari.read-only=
spring.datasource.hikari.register-mbeans=
spring.datasource.hikari.scheduled-executor=
spring.datasource.hikari.schema=
spring.datasource.hikari.transaction-isolation=
spring.datasource.hikari.username=
spring.datasource.hikari.validation-timeout=
HikariCP
带有 合理的 默认值,在大多数部署中都可以 正常运行 ,而无需进行其他调整。每个属性都是可选的。除了以下基本的核心属性以外。
data-source-class-name
jdbc-url
username
password
因为整合了springboot,springboot已经在 spring.datasource 配置了如上属性,所以
Hikari
的中这些配置在这里可以忽略。
常用的配置项,以及说明
https://github.com/brettwooldridge/HikariCP#configuration-knobs-baby