简介

SpringBoot2.0 之后使用 HikariCP 连接池更加方便了,因为 SB2.0 之后, HikariCP 连接池代替了 Tomcat 连接池已经成为了 SB2.0 的默认连接池 ,springboot默认依赖中集成了HikariCP,所以不用在引入Hikari的相关依赖了。下面开始正题。

spring boot 集成 hbase springboot集成hikaricp_spring

环境

  • Maven
  • JDK 8+
  • SpringBoot 2.0.+

相关依赖

因为spring boot 2.0使用hikariCP作为默认连接池,所以hikariCP的依赖已经默认集成了,hikariCP的依赖集成在了spring-boot-starter-jdbcspring-boot-starter-data-jpa中,我们不需要另外引入hikariCP相关的依赖,这里只是引入了Mysql的依赖和JDBC依赖。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.13</version>
</dependency>

相关配置

spring:
  # 数据库连接信息配置
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false&zeroDateTimeBehavior=convertToNull
    username: root
    password: root
    type: com.zaxxer.hikari.HikariDataSource
    # hikari 连接池配置
    hikari:
      minimum-idle: 5 # 最小链接数
      maximum-pool-size: 15 # 最大连接数
      auto-commit: true # 自动提交
      idle-timeout: 30000 # 最大空闲时间(毫秒)
      pool-name: DataPoolHikari # 链接池名
      max-lifetime: 180000 # 最大生命周期(毫秒)
      connection-timeout: 30000 # 连接超时时间(毫秒)
      connection-test-query: SELECT 1 # 心跳检测



spring boot 集成 hbase springboot集成hikaricp_连接池_02


enjoy coding!


详细配置信息

必须配置

Spring boot配置项 (前缀:spring.datasource.)

描述

默认值

对应配置项

url

数据库url连接信息

none

jdbcUrl

username

用户名

none

username

password

密码

none

password

常用配置

Spring boot配置项 (前缀:spring.datasource.hikari.)

描述

默认值(ms毫秒,s秒,min分钟)

对应配置项

auto-commit

自动提交从池中返回的连接

true

autoCommit

connection-timeout

从池中获取连接等待的最大时间,超出时间仍无可用连接,抛出SQLException

30000ms(30s),最小设置为250毫秒

connectionTimeout

idle-timeout

连接在池中空闲的最长时间,minimumIdle小于maximumPoolSize时有效,值为0时表示始终不删除空闲连接

600000ms(10min),最小设置为10000ms(10s)

idleTimeout

max-lifetime

池中连接的最长生命周期,值0表示没有最大生命周期(无限生命周期)

1800000ms(30min)

maxLifetime

jdbc4-connection-test

如果驱动程序支持JDBC4,强烈建议不要设置此属性

none

connectionTestQuery

minimum-idle

池中维护的最小空闲连接数,如果池中空闲连接数小于minimum-idle,并且小于maximumPoolSize,HikariCP会创建新的空闲连接,建议不设置

等于maximumPoolSize

minimumIdle

maximum-pool-size

池中的最大连接数,包括正在使用和空闲的连接数,建议根据后端数据库进行具体设置

10个

maximumPoolSize

metric-registry

记录各种度量标准

none

metricRegistry

health-check-registry

报告当前的健康信息

none

healthCheckRegistry

pool-name

连接池的名称,主要出现在日志记录和JMX管理控制台中,以标识池和池配置。

自动生成

poolName

不常用配置

Spring boot配置项 (前缀:spring.datasource.hikari.)

描述

默认值(ms毫秒,s秒,min分钟)

对应配置项

initialization-fail-timeout

如果池无法成功初始化连接,则此属性控制池是否“快速失败”的时间,在此超时发生之前无法获取连接,则将引发异常

1ms

initializationFailTimeout

isolate-internal-queries

确定HikariCP是否在其自己的事务中隔离内部池查询,此属性仅在禁用autoCommit时适用

false

isolateInternalQueries

allow-pool-suspension

池是否可以通过JMX挂起和恢复

false

allowPoolSuspension

read-only

从池中获取的Connections是否处于只读模式

false

readOnly

register-mbeans

是否注册JMX管理Bean

false

registerMbeans

catalog

设置支持catalog概念的数据库的缺省catalog。如果未指定此属性,则使用JDBC驱动程序定义的缺省catalog

driver default

catalog

connection-init-sql

设置一个SQL语句,该语句将在每次创建新连接之后,添加到池中之前执行

none

connectionInitSql

driver-class-name

数据库驱动配置,HikariCP将尝试仅基于jdbcUrl通过DriverManager解析驱动程序,除非您收到明显的错误消息,指出未找到驱动程序,否则请忽略此属性。

none

driverClassName

transaction-isolation

从池返回的连接的默认事务隔离级别。

driver default

transactionIsolation

validation-timeout

连接将被测试活动的最长时间,最小设置为250ms

5000ms(5s)

validationTimeout

leak-detection-threshold

记录消息之前连接可能离开池的时间量,表示可能的连接泄漏,0表示禁止泄漏检测,启用泄漏检测的最低可接受值是2000ms(2秒)

0

leakDetectionThreshold

允许您直接设置要由池包装的DataSource实例,而不是让HikariCP通过反射构造它。

none

dataSource

schema

该属性为支持模式概念的数据库设置默认模式

driver default

schema

此属性允许您设置将用于创建池使用的所有线程的java.util.concurrent.ThreadFactory的实例。

none

threadFactory

scheduled-executor

此属性允许您设置将用于各种内部计划任务的java.util.concurrent.ScheduledExecutorService实例

none

scheduledExecutor

参考