HikariCP配置手册

必须配置

1、dataSourceClassName或者jdbcUrl (二选一)

在Springboot 自动装配,或使用Mysql DataSource 情况下 请使用jdbcUrl。其他情况,HikariCP建议使用DataSourceClassName

  1. dataSourceClassName :意思是JDBC驱动提供的DataSource的名称。但是DataSourceClassName不支持XA(分布式事务)数据源。XA需要像birronix 这样的事务管理器
  2. jdbcUrl :属性标识HikariCP使用的是传统的、基于驱动管理器DriverManager的配置。将此属性于“旧”驱动程序一起使用时,可能还需要设置driverClassName属性,所以建议尽量不使用该属性。如果必须使用此属性,则用户应使用DataSource属性来配置驱动程序,笔者建议使用URL本身指定的驱动程序参数

2、username

身份验收账号

3、 password

身份验收密码
在这里插入图片描述

非必需配置

常用配置

1、autoCommit

控制从池返回的连接的默认自动提交行为。它是一个布尔值,默认值:true

2、connectionTimeout

控制客户端(即用户程序)等待池中连接的最长毫秒数。如果在没有连接可用的情况下超过此时间,则将抛出SQLException异常。最低可以接受的连接超时为250毫秒。默认值:3000(30秒)。这是一个很重要的问题排查指标

3、idleTimeout

控制连接允许被闲置在池中的最大时间。此设置仅适用于 minimumIdel 定义为比 maximunPoolSize 小的时候。 一旦池到达minimumIdel连接的时候,空闲连接将不会退役。

4、maxLifetime

控制连接池的最大生命周期。使用中的连接永远不会退役,只有关闭后连接才会被移除。HikariCP不会让所有连接同时退役,而是巧妙地对每一个连接都设置了轻微的负衰减值,以避免池中的连接大规模消忙,HikariCP作者强烈建议用户设置此值,并且它应比任何数据库或基础设施实施的连接时间限制短几秒。值0表示没有最大生存期(无限生存期),当然这取决于idleTimeout设置。默认值为1 800 00(30分钟),不建议设置低于5分钟

5、connectionTestQuery

如果驱动程序支持JDBC4,则建议不设置此属性。这适用于不支持JDBC4的Connection.isValid()的“遗留”驱动程序API。这是一个检测查询,在数据库连接池给出连接之前进行查询,以验证与数据库的连接是否仍然存在且有效。

注意: 如果你追求极致性能的话,建议不要配置该属性,因不配置的时候会通过ping命令进行连接检测,性能会更高。是通过 select 1 的一倍左右。

6、minimunIdel

尝试 在池中维护最小空闲连接数。若空闲连接数低于此值且池中的总连接数小于maximumPoolSize,则HikariCP将尽最大努力快速地添加其他连接,为了最大限度地提高性能和对峰值需求的响应能力, HikariCP的作者不建议设置此值,而是让HikariCP充当一个固定大小的连接池(就算设置了idleTimeout,他也会在池中存活)。如果设置了该值,HikariCP就会是一个大小可变的池,将会出现使用情况上下浮动。

7、maximumPoolSize

控制数据库连接池连接数允许到达的最大值,包括空闲和正在使用的连接。基本上,此值将决定数据库后端实际连接的最大数量。当池中到此大小且没有空闲时间,对getConnection()的调用将阻塞到超时 connectionTimeout毫秒。 默认值:10

8、metricRegistry

该属性仅在编程配置或IOC容器中可用。该属性允许用户指定池使用的 Codahale / Dropwizard 实例 MetricRegistry,来记录各种度量标准。如果用户需要使用 Prometheus 等监控,还需要做一些操作。 默认值 : 无

9、healthCheckRegistry

该属性仅在编程配置或IOC容器中可用。该属性允许用户指定池使用的 Codahale / Dropwizard 实例 HealthCheckRegistry, 来报告当前系统的健康信息。 默认值 : 无

10、poolName

表示连接池的用户定义名称,主要显示在日志记录和JMX管理控制台中,以标识池和池配置。该属性的默认值:自动生成

非常用配置

1、initizlizationFailTimeout

如果池无法成功初始化连接,则此属性控制池是否“快速失败”。当该属性为正数是,该值为尝试获取初始化连接的毫秒数。在此期间,应用程序线程将被阻塞。如果在超时发生之前无法获取连接,则将引发异常。initizlizationFailTimeout 超时发生在 connectionTimeout 阶段之后。如果值为0,HikariCP将尝试获取连接,则池启动,但稍后获取连接的尝试会失败。小于0的值将绕过任何初始连接尝试,并且池将尝试在后台获取连接时立即启动。因此,以后获取连接的尝试可能失败。默认值:1。

2、isolateInternalQueries

HikariCP是否在自己的事务中隔离内部池查询,例如连接存活测试。由于这些查询通常只读查询,因此很少有必要将它们封装在自己的事务当中。此属性仅在autoCommit禁用时使用。默认值:false

3、allowPoolSuspension

此属性控制池事是否可以通过JMX挂起和恢复。这对某些鼓掌转移自动化方案很有用。当池被挂起时,调用getConnection()将不会超时,并将一直保持到池恢复为止,默认值:false

4、readOnly

控制默认情况下从池中获取的Connections是否处于只读模式。注意,某些数据库不支持只读模式的概念,而其他数据库在Connection设置为只读模式时提供查询优化功能。是否需要此属性将在很大程度上取决于用户的应用城西和数据库。默认值:false

5、registerMbeans

此属性控制是否注册JMX以管理Bean(MBean)。默认值:false

6、catalog

此属性为支持catalog的数据库设置默认值catalog。如果未指定此属性,则使用JDBC驱动程序定义的默认值catalog。默认值:driver default

7、connectionInitSql

此属性设置一个SQL语句,该语句将在每次创建新连接之后执行,然后再将该连接添加到池中。如果此SQL无效或抛出异常,则被视为连接失败,并将遵循标准重试逻辑。默认值:无

8、driverClassName

HikariCP将尝试仅基于jdbcUrl通过DriverManager解析驱动程序,但对于某些较旧的驱动程序必须指定driverClassName。除非用户收到明显的错误消息,表明未找到驱动程序,否则可忽略此属性。默认值:无

9、transactionIsolation

此属性控制从池返回的连接的默认事务隔离级别。若未指定,则用JDBC驱动程序定义的默认事务隔离级别。仅当又针对所有查询的特定隔离需求时,才使用此属性。此属性的值是Connection类的常量名,如TRANSACTION_READ_COMMITTED、TRANSACTION_REPEATEBLE_READ等。默认值:driver default。

10、validationTimeout

此属性控制连接测试活性的最长时间。该值必须小于connectionTimeout。最低可接受的验证超时为250毫秒。默认值:5000

11、leakDetectionThreshold

此属性控制连接在一条指示可能连接泄露的消息之前流出池的时间。值为0表示禁用泄露检测。启动泄露检测的最低可接受是2000毫秒(2秒)。默认值:0

12、dataSource

该属性仅通过编程配置或IOC容器获得。此属性允许用户直接设置DataSource要由池包装的实例,而不是让HikariCP通过反射构造该实例。在这一些依赖注入框架中很有用。指定此属性后,dataSourceClassName将忽略该属性和所有特定于DataSource的属性。默认值:无

13、schema

该属性为支持schema概念数据库设置默认schema。如果未指定此属性,则使用JDBC驱动程序定义的默认模式。默认值:driver default

14、threadFactory

该属性仅通过编程配置或IOC容器获得。通过配置该属性自定义设置java.util.concurrent.ThreadFactory的实例,可以创建池使用的所有线程的实例。这个属性在某些受限制的环境中使用,在这些环境中,线程只能通过应用容器提供的ThreadFactory创建。默认值:无

15、seheduledExecutor

该属性仅通过编程配置或IOC容器获得。通过配置该属性自定义设置java.util.concurrent.ScheduledExecutorService的实例,可实例化各种内部调用任务。**如果向HikariCP提供ScheduledThreadPoolExecutor实例,建议设置setRemoveOnCancelPolicy(true)。**默认值:无

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值