V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
hellwys1
V2EX  ›  Java

关于 hikari,一个迷惑的现象

  •  
  •   hellwys1 · 2019-07-25 10:31:35 +08:00 · 3901 次点击
    这是一个创建于 1729 天前的主题,其中的信息可能已经有所发展或是发生改变。

    properties 进行了以下配置。

    spring.datasource.hikari.maximumPoolSize= 12
    spring.datasource.hikari.minimumIdle=5
    

    然后我发现 空闲连接数Idle是可以超过maximumPoolSize的。

    看了一下HikariDataSource.java 以及HikariConfig.java 发现确实没有 maxIdle 这种选项。

    就很神秘,感到很迷惑,这种设计是为什么呢?

    解决方法估计有几个,我用的 spring.datasource.tomcat.max-idle=10

    那么,各位有遇到这种情况吗?望不吝赐教。

    7 条回复    2019-07-25 13:04:12 +08:00
    qwerthhusn
        1
    qwerthhusn  
       2019-07-25 10:46:16 +08:00   ❤️ 1
    具体我也不清楚,,,但是阿里的 druid 连接池提到了 maxIdle。

    maxIdle 是 Druid 为了方便 DBCP 用户迁移而增加的,maxIdle 是一个混乱的概念。连接池只应该有 maxPoolSize 和 minPoolSize,druid 只保留了 maxActive 和 minIdle,分别相当于 maxPoolSize 和 minPoolSize。
    qwerthhusn
        2
    qwerthhusn  
       2019-07-25 10:47:07 +08:00
    上面是 druid 的 Github Wiki 里面的原话
    javlib
        3
    javlib  
       2019-07-25 11:34:48 +08:00   ❤️ 1
    idle connection 数量是怎么看的?
    我看 HikariPool::logPoolState 可以打印连接状态,如下:
    total={}, active={}, idle={}, waiting={}

    HourseKeeper 会调用 logPoolState,然后 HouseKeeper 会周期 30s 运行,你把 Hikari 的日志级别设置成 DEBUG 看看呢?
    LeeSeoung
        4
    LeeSeoung  
       2019-07-25 11:52:18 +08:00   ❤️ 1
    = =你用的 hikari 然后配置 tomcatjdbc 的 maxIdle 又有啥用。。你是从哪里推断出 idle 数量大于 maxPoolSize 的,截个图对比放上来看下啊
    10Buns
        5
    10Buns  
       2019-07-25 12:02:26 +08:00   ❤️ 1
    maxIdle 是 DBCP 里面的概念。
    当连接数超过 maxIdle 后,刚空闲的连接会立即被销毁, 进而没有缓冲的作用。 如果 maxIdle 与 maxActive 相差较大,系统负载高时会频繁的创建 /销毁连接。所以一般 maxIdle 设置与 maxActive 一致或-1 不限制,让连接数量在 minIdle 与 maxIdle 间波动较小。
    hellwys1
        6
    hellwys1  
    OP
       2019-07-25 12:57:18 +08:00
    @10Buns
    谢谢,明白了。
    我概念上不清晰。
    确实有空闲连接数超过最大连接数的情况,我再查一下。
    hellwys1
        7
    hellwys1  
    OP
       2019-07-25 13:04:12 +08:00
    @LeeSeoung
    是的,我太蠢了。😂
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5444 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 05:51 · PVG 13:51 · LAX 22:51 · JFK 01:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.