hikari

作者: Yluozi | 来源:发表于2021-05-24 16:06 被阅读0次

HiKariCP是数据库连接池的一个后起之秀,号称性能最好,可以完美地PK掉其他连接池,是一个高性能的JDBC连接池,基于BoneCP做了不少的改进和优化。

数据库连接池性能比对(hikari druid c3p0 dbcp jdbc)

1:性能方面 hikariCP>druid>tomcat-jdbc>dbcp>c3p0 。hikariCP的高性能得益于最大限度的避免锁竞争。

2:druid功能最为全面,sql拦截等功能,统计数据较为全面,具有良好的扩展性。

3:综合性能,扩展性等方面,可考虑使用druid或者hikariCP连接池。

4:可开启prepareStatement缓存,对性能会有大概20%的提升。

功能对比:

功能 dbcp druid c3p0 tomcat-jdbc HikariCP
是否支持PSCache
监控 jmx jmx/log/http jmx,log jmx jmx
扩展性
sql拦截及解析 支持
代码 简单 中等 复杂 简单 简单
特点 依赖于common-pool 阿里开源,功能全面 历史久远,代码逻辑复杂,且不易维护 优化力度大,功能简单,起源于boneCP
连接池管理 LinkedBlockingDeque 数组 FairBlockingQueue threadlocal+CopyOnWriteArrayList

由于boneCP被hikariCP替代,并且已经不再更新,boneCP没有进行调研。
proxool网上有评测说在并发较高的情况下会出错,proxool便没有进行调研。
druid的功能比较全面,且扩展性较好,比较方便对jdbc接口进行监控跟踪等。
c3p0历史悠久,代码及其复杂,不利于维护。并且存在deadlock的潜在风险。

hikari使用

springboot 2.0 默认连接池就是Hikari了,所以引用parents后不用专门加依赖,配置一下就好:

  # Hikari连接池的设置
  datasource:
    type: com.zaxxer.hikari.HikariDataSource
    hikari:
      pool-name: knmarket-manage  # 连接池名字
      minimum-idle: 10 # 最小空闲连接数量
      idle-timeout: 600000 # 空闲连接存活最大时间,默认600000(10分钟)
      maximum-pool-size: 20 # 连接池最大连接数,默认是20
      auto-commit: true # 此属性控制从池返回的连接的默认自动提交行为,默认值:true
      max-lifetime: 1800000 # 此属性控制池中连接的最长生命周期,值0表示无限生命周期,默认1800000即30分钟
      connection-timeout: 30000 # 数据库连接超时时间,默认30秒,即30000

直接启动项目即可启动连接池,如图:


image.png

相关文章

网友评论

      本文标题:hikari

      本文链接:https://www.haomeiwen.com/subject/yqvxsltx.html