Double_dddddddd 2023-07-19 10:39 采纳率: 50%
浏览 22

druid连接池配置,为什么没有保持最小连接数?

问题:使用springboot默认的连接池没有进行配置,链接sqlserver,一直频繁的与数据库建立连接, 老是被数据库认定为攻击,网上百度了一下,配置了连接池,又有了一下问题:

druid连接池配置的问题,


      initial-size: 10
      max-active: 100 #连接池中允许的最大活动连接数。
      max-pool-prepared-statement-per-connection-size: 20 #每个连接池的最大预编译语句数。
      max-wait: 60000 #获取连接时的最大等待时间,单位为毫秒。
      min-evictable-idle-time-millis: 300000 #连接池中连接空闲的最小时间,超过这个时间的空闲连接将被回收。
      min-idle: 10 #连接池中保持的最小空闲连接数。

我是这么想的哈,初始化10个连接,最小空闲链接10个,以上配置 当这10个连接一天都没有被使用,那么设置的这个属性 min-evictable-idle-time-millis: 300000,(设置连接池中连接空闲的最小时间为30分钟,超过这个时间的空闲连接将被回收);是会将这些连接都断开 还是只会断开超过10 个的链接 , 不管用不用都会保持最小数量一直下去?换句话说,想要保持长连接需要怎么配置呢?
昨天配置完又重新跑,今天看到连接池中只有一个链接了,但是我设置的是 min-idle: 20,为什么没有保持最小连接呢?

img

  • 写回答

2条回答 默认 最新

  • 藏柏 2023-07-19 11:05
    关注

    根据这些属性的设置,连接池会在启动时初始化10个连接(initial-size: 10),并且保持最小空闲连接数为10个(min-idle: 10)。如果这些连接在30分钟内都没有被使用,它们将被认为是空闲连接并且可能会被回收(min-evictable-idle-time-millis: 300000)。

    连接池的维护过程中,会根据实际需要动态调整连接的数量。如果连接池中的连接数小于最小空闲连接数(10个),连接池会创建新的连接,以满足最小连接数的要求。但是,如果连接池中的连接数超过最小空闲连接数,并且这些连接处于空闲状态超过30分钟(min-evictable-idle-time-millis: 300000),那么它们可能会被回收,以减少资源的消耗。

    关于为了保持长连接的配置,您可以将min-idle属性设置为您期望保持的最小连接数,例如20个,确保连接池中始终保持足够的空闲连接。同时,您可以适当调整min-evictable-idle-time-millis属性的值,使空闲连接的回收时间更长,以减少连接的频繁创建和回收,从而提高性能。

    至于为什么您的连接池中只有一个连接而不是设置的最小连接数20个,可能是由于其他因素造成的,例如连接的使用频率、连接的回收策略等。您可以检查日志或进行更详细的排查来确定问题的原因。

    需要注意的是,连接池的行为也可能受到具体的数据库驱动程序和其它配置的影响,因此在调整连接池配置时,建议参考相关的文档和官方建议,以确保配置的准确性和适用性。

    评论

报告相同问题?

问题事件

  • 修改了问题 7月19日
  • 修改了问题 7月19日
  • 创建了问题 7月19日

悬赏问题

  • ¥15 请问Ubuntu要怎么安装chrome呀?
  • ¥15 视频编码 十六进制问题
  • ¥15 Xsheii7我安装这个文件的时候跳出来另一个文件已锁定文件的无一部分进程无法访问。这个该怎么解决
  • ¥15 unity terrain打包后地形错位,跟建筑不在同一个位置,怎么办
  • ¥15 FileNotFoundError 解决方案
  • ¥15 uniapp实现如下图的图表功能
  • ¥15 u-subsection如何修改相邻两个节点样式
  • ¥30 vs2010开发 WFP(windows filtering platform)
  • ¥15 服务端控制goose报文控制块的发布问题
  • ¥15 学习指导与未来导向啊