Hikari连接池 最大连接数与最小空闲连接数配置多少合适?

spring:
  datasource:                                           # 数据源的相关配置
      type: com.zaxxer.hikari.HikariDataSource          # 数据源类型:HikariCP
      driver-class-name: com.mysql.jdbc.Driver          # mysql驱动
      url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true
      username: root
      password: root
    hikari:
      connection-timeout: 30000       # 等待连接池分配连接的最大时长(毫秒),超过这个时长还没可用的连接则发生SQLException, 默认:30秒
      minimum-idle: 5                 # 最小空闲连接数
      maximum-pool-size: 20           # 最大连接数
      auto-commit: true               # 自动提交
      idle-timeout: 600000            # 连接超时的最大时长(毫秒),超时则被释放(retired),默认:10分钟
      pool-name: DateSourceHikariCP     # 连接池名字
      max-lifetime: 1800000           # 连接的生命时长(毫秒),超时而且没被使用则被释放(retired),默认:30分钟 1800000ms
      connection-test-query: SELECT 1

这里我们最小空闲连接数和最大连接数分别设置为5和20,其实Hikari的默认值是maximumPoolSize为10,而minimumIdle强烈建议不要配置、默认值与maximumPoolSize相同。但一般公司maximumPoolSize基本上这个值将决定到数据库后端的最大实际连接数,对此的合理价值最好由实际的执行环境决定,也就是硬件有关。保留minimumIdle的值(并不是不设置)是为了防止空闲很久时创建连接耗时较长从而影响RT。不过我还是比较倾向作者的观点,尽量不要minimumIdle,允许HikariCP充当固定大小的连接池,毕竟我相信追求极致的Hikari一定可以尽最大努力快速高效地添加其他连接,从而获得最佳性能和响应尖峰需求。

而且作者的意思很明确,设置固定大小的连接数量肯定是没什么问题的,因为毕竟我们的系统也不太会出现长时间闲置的情况,也就是长时间系统0访问,哪怕是凌晨网站也会有用户的请求。

注意:最大连接数不是越大越好,跟多线程一样,不是创建越多的线程就越好。

比如你服务器是4核,最大连接数可以设置为10,如果是8核,可以设置为20。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神农尝百码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值