HikariCP配置手册

article/2025/9/14 12:36:30

必须配置

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)。**默认值:无


http://chatgpt.dhexx.cn/article/UHeGNy90.shtml

相关文章

HikariCP 创建连接

PoolEntry PoolEntry 是 HikariCP 中对数据库物理连接的封装。 那我们现在探索问题的关键点就是: PoolEntry.connection 是如何创建的;连接是何时创建的; 我们先看下 HikariCP 中数据源、连接、连接池之间的关系。 创建连接 连接池的初…

hikaricp mysql_配置HikariCP连接池

配置HikariCP连接池 数据库配置 spring.datasource.driver-class-namecom.mysql.jdbc.Driver 指定 spring 连接数据源驱动 spring.datasource.typecom.zaxxer.hikari.HikariDataSource 指定 spring 连接数据源类型 spring.datasource.urljdbc:mysql:///dbgoods?serverTimezone…

HikariCP连接池

背景 自己在写点代码的时候之前pom文件的内容都是从前一个项目中复制的,并没有认真分析一下各种依赖的关系,有时候重复的问题会出现好多次,比如说连接数据库报错,有时候配置没有问题,可能是依赖的jar包的问题&#xf…

HikariCP数据库连接池详解

HikariCP数据库连接池详解 1. 数据库连接池概述2. 为什么需要连接池3. HikariCP概述4. HikariCP特点5. HikariCP配置6. HikariCP案例验证 1. 数据库连接池概述 连接池是一种常用的技术,为什么需要连接池呢? 这个需要从TCP说起。假如我们的服务器跟数据库…

hikaricp mysql_HikariCP数据库连接池

摘要: 原创出处 hacpai.com/article/1582096971127 「jianzh5」欢迎转载,保留摘要,谢谢! 什么是数据库连接池: 连接池是一种常用的技术,为什么需要连接池呢?这个需要从TCP说起。假如我们的服务器跟数据库没…

hikaricp使用

hikaricp数据库连接池是目前很流行的数据源 1.需要引入mysql的驱动、hikaricp依赖 <properties><java.version>1.8</java.version><hikari.version>2.7.9</hikari.version><mysql.version>8.0.13</mysql.version></properties&g…

自定义HikariCP连接池

文章目录 一、简介1、概述2、地址 二、配置参数1、Hikari原生参数2、Springboot中参数 三、springboot中使用四、自定义数据源1、各模块2、完整代码3、多数据源 五、多数据源dynamic中使用1、简介2、引入依赖3、参数配置 六、XMind整理 一、简介 1、概述 官方解释&#xff1a…

HikariCP源码分析

文章目录 1. 基本用法1.1 添加依赖1.2 创建DataSource1.3 获取连接 2. 源码分析2.1 API2.2 Pool2.2.1 获取连接2.2.2 添加连接2.2.3 维护连接 2.3 metrics2.3.1 dropwizard2.3.2 prometheus 3. 最佳实践 HikariCP是一个快速&#xff0c;简单可靠的JDBC连接池&#xff0c;Spring…

hikaricp mysql_HikariCP

软件简介 HikariCP 是一个高性能的 JDBC 连接池组件。下图是性能的比较测试结果&#xff1a; 使用方法&#xff1a; HikariConfig config new HikariConfig(); config.setMaximumPoolSize(100); config.setDataSourceClassName("com.mysql.jdbc.jdbc2.optional.MysqlData…

数据库连接池HikariCP

HikariCP 现在已经有很多公司在使用HikariCP了&#xff0c;HikariCP还成为了SpringBoot默认的连接池&#xff0c;伴随着SpringBoot和微服务&#xff0c;HikariCP 必将迎来广泛的普及。 下面带大家从源码角度分析一下HikariCP为什么能够被Spring Boot 青睐&#xff0c;文章目录…

HikariCP 了解一下

作者 | 黄永灿 后端开发攻城狮&#xff0c;关注服务端技术与性能优化。 前言 在我们的工作中&#xff0c;免不了要和数据库打交道&#xff0c;而要想和数据库打好交道&#xff0c;选择一款合适的数据库连接池就至关重要&#xff0c;目前业界广为人知的数据库连接池有 Tomcat JD…

离线数仓-03-数仓系统搭建(ODS,DIM,DWD,DWS,ADS)

文章目录 数仓分层为什么要分层数据运营层&#xff1a;ODS&#xff08;Operational Data Store&#xff09;数据仓库层&#xff1a;DW&#xff08;Data Warehouse&#xff09;维表层&#xff1a;DIM&#xff08;Dimension&#xff09;数据明细层&#xff1a;DWD&#xff08;Dat…

数仓数据分层(ODS DWD DWS ADS)换个角度看

数仓数据分层简介 1. 背景 数仓是什么, 其实就是存储数据,体现历史变化的一个数据仓库. 因为互联网时代到来,基于数据量的大小,分为了传统数仓和现代数仓.传统数仓,使用传统的关系型数据库进行数据存储,因为关系型数据库本身可以使用SQL以及函数等做数据分析.所以把数据存储和…

湖仓一体电商项目(十):业务实现之编写写入DWD层业务代码

文章目录 业务实现之编写写入DWD层业务代码 一、代码编写

【实时数仓】CDC简介、实现DWD层业务数据的处理(主要任务、接收kafka数据、动态分流*****)

文章目录 一 CDC简介1 什么是CDC2 CDC的种类3 Flink-CDC 二 准备业务数据-DWD层1 主要任务&#xff08;1&#xff09;接收Kafka数据&#xff0c;过滤空值数据&#xff08;2&#xff09;实现动态分流功能&#xff08;3&#xff09;把分好的流保存到对应表、主题中 2 接收Kafka数…

数仓开发之DWD层(二)

目录 三&#xff1a;流量域用户跳出事务事实表 3.1 主要任务 3.2 思路分析 3.3 图解 3.4 代码 四&#xff1a;交易域加购事务事实表 4.1 主要任务 4.2 思路分析 4.3 图解 4.4 代码 三&#xff1a;流量域用户跳出事务事实表 3.1 主要任务 过滤用户跳出明细数据。 3.2 思…

电商数仓(dwd 层)

一、dwd 层介绍 1、对用户行为数据解析。 2、对核心数据进行判空过滤。 3、对业务数据采用维度模型重新建模&#xff0c;即维度退化。 二、dwd 层用户行为数据 2.1 用户行为启动表 dwd_start_log 1、数据来源 ods_start_log -> dwd_start_log 2、表的创建 drop table…

详解数仓中的数据分层:ODS、DWD、DWM、DWS、ADS

何为数仓DW Data warehouse(可简写为DW或者DWH)数据仓库,是在数据库已经大量存在的情况下,它是一整套包括了etl、调度、建模在内的完整的理论体系。 数据仓库的方案建设的目的,是为前端查询和分析作为基础,主要应用于OLAP(on-line Analytical Processing),支持复杂的分析…

万字详解数仓分层设计架构 ODS-DWD-DWS-ADS

一、数仓建模的意义&#xff0c;为什么要对数据仓库分层&#xff1f; 只有数据模型将数据有序的组织和存储起来之后&#xff0c;大数据才能得到高性能、低成本、高效率、高质量的使用。 1、分层意义 1&#xff09;清晰数据结构&#xff1a;每一个数据分层都有它的作用域&#x…