HikariCP连接池

版权声明:本文为博主原创文章,欢迎转载,转载请注明作者、原文超链接

常用连接池:c3p0,dbcp等,近期一个项目引用c3p0出现数据库一直连接失败的问题,故使用了HikariCP,据说是史上最快速的连接池。springboot2.0也是默认集成此连接池.
github性能对比截图:
在这里插入图片描述
在这里插入图片描述

application.yml配置 springboot版本2.0.5

#数据库配置
spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    username: xxxx
    password: xxxx
    url:  jdbc:mysql://xxxx:3306/jeecms_pro?characterEncoding=UTF-8&autoReconnect=true
    type: com.zaxxer.hikari.HikariDataSource
    hikari:
      read-only: false #默认是false
      connection-timeout: 5000 #等待连接池分配连接的最大时长(毫秒)
      idle-timeout:  7200 #一个连接idle状态的最大时长(毫秒)
      max-lifetime: 7200 #一个连接的生命时长(毫秒)
      maximum-pool-size: 100 #连接池内最大连接数
      minimum-idle: 10
      auto-commit: true

如果是spring项目,application-context.xml配置:

<bean id="dataSourceHikari" class="com.zaxxer.hikari.HikariDataSource">
        <property name="driverClassName" value="${jdbc.driverClassName}" />
        <property name="jdbcUrl" value="${jdbc.url}" />
        <property name="username" value="${jdbc.username}" />
        <property name="password" value="${jdbc.password}" />
        <!-- 连接只读数据库时配置为true, 保证安全 -->
        <property name="readOnly" value="false" />
        <!-- 等待连接池分配连接的最大时长(毫秒),超过这个时长还没可用的连接则发生SQLException, 缺省:30秒 -->
        <property name="connectionTimeout" value="${cpool.checkoutTimeout}" />
        <!-- 一个连接idle状态的最大时长(毫秒),超时则被释放(retired),缺省:10分钟 -->
        <property name="idleTimeout" value="${cpool.maxIdleTime}" />
        <!-- 一个连接的生命时长(毫秒),超时而且没被使用则被释放(retired),缺省:30分钟,建议设置比数据库超时时长少30秒,参考MySQL 
            wait_timeout参数(show variables like '%timeout%';) -->
        <property name="maxLifetime" value="${cpool.maxIdleTime}" />
        <!-- 连接池中允许的最大连接数。缺省值:10;推荐的公式:((core_count * 2) + effective_spindle_count) -->
        <property name="maximumPoolSize" value="${cpool.maxPoolSize}" />
        <property name="minimumIdle" value="${cpool.minPoolSize}" />
    </bean>

猜你喜欢

转载自blog.csdn.net/qq_29312259/article/details/82781507