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