在SpringBoot中使用HikariCP連接池


在SpringBoot中使用HikariCP連接池

HikariCP 是一款性能極佳的數據庫連接池,體積很小,大約130Kb。SpringBoot2.0也已經采用HikariCP作為默認連接池配置.。

HikariCP官方Github

https://github.com/brettwooldridge/HikariCP

對比各類連接池的基准測試。

和Druid比怎么樣

國內用 Druid的也不少,如果需要在DuridHikariCP之間進行一個選擇,可以先參考雙方作者之間的一次溝通
https://github.com/brettwooldridge/HikariCP/issues/232

SpringBoot整合

SpringBoot對數據源連接池的選擇算法

  1. 如果 HikariCP可用,那么就會選擇 HikariCP
  2. 如果沒有 HikariCP,但是Tomcat-Pool可用。 就會使用 Tomcat-Pool
  3. HikariCPTomcat-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.url=com.mysql.cj.jdbc.Driver
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

原文:https://springboot.io/t/topic/2193


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM