mysql中minidle_druid连接池的总量低于配置的minIdle

问题:

我们线上配置的具体配置 minIdle=20,详情见附件1

druid日志打印出来 activeCount+poolingCount=4 具体日志见附件2.

连接池的总量已经低于最小值了。

出现这种原因:

业务从连接池获取连接后,testWhileIdle,发现连接失败(注:超过服务端空闲时间,已经被数据库服务端强行关闭,目前我们的运维体系里,服务端关闭被强行定义为15分钟)此时抛弃该连接,数量从初始值的20变为19.后面反复会陆续降低到业务真正使用的连接数,我们的业务上是4个。

进一步分析:

对于震荡式业务, 如果业务对连接数需求新增,会新建连接,连接池数量从4个增加到6个(在我们的业务场景下),然后业务需求降低,会有几个连接一直不被使用(连接池数据结构使用的数组堆栈),最终等到业务震荡高峰时被获取,如果刚好超过了minEvictableIdleTimeMillis并且已经被服务端关闭,testWhileIdle后被丢弃。

这个会导致连接池的意义被降低了,极端情况,对震荡式的业务会导致获取连接时会遇到 1.先testWhileIdle 2.再await等待CreateConnectionThread线程新建连接

代码分析和个人想法:

目前的CreateConnectionThread线程用于新建扩充,DestroyConnectionThread用于收缩:

看了源代码,我们是用的1.0.8 http://grepcode.com/file/repo1.maven.org/maven2/com.alibaba/dr

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Jetty是一个开源的Java HTTP服务器和Servlet容器,而Druid是一个开源的数据库连接池。在Jetty配置Druid连接池可以提供高效的数据库连接管理和资源复用。 要配置Jetty使用Druid连接池,需要进行以下步骤: 1. 首先确保你已经将Druid的相关依赖添加到Jetty的项目。可以通过Maven或手动添加jar包的方式引入Druid的依赖。 2. 在Jetty的配置文件,找到对应的数据源配置部分。一般来说,Jetty的配置文件是一个XML文件,其包含了各种配置项。 3. 在数据源配置部分,添加以下配置项来配置Druid连接池: ```xml <New id="myDataSource" class="org.eclipse.jetty.plus.jndi.Resource"> <Arg></Arg> <Arg>jdbc/myDataSource</Arg> <Arg> <New class="com.alibaba.druid.pool.DruidDataSource"> <Set name="driverClassName">your_driver_class_name</Set> <Set name="url">your_database_url</Set> <Set name="username">your_username</Set> <Set name="password">your_password</Set> <!-- 其他Druid连接池配置项 --> </New> </Arg> </New> ``` 其,`myDataSource`是数据源的名称,可以根据实际情况进行修改。`jdbc/myDataSource`是数据源在JNDI的名称,也可以根据实际情况进行修改。 4. 根据实际情况,修改`driverClassName`、`url`、`username`和`password`等配置项,以适配你的数据库连接信息。 5. 可以根据需要,添加其他Druid连接池配置项,例如最大连接数、最小空闲连接数等。具体的配置项可以参考Druid的文档。 6. 保存并关闭Jetty的配置文件。 配置完成后,Jetty将会使用Druid连接池来管理数据库连接。你可以在代码通过JNDI查找数据源,并使用Druid提供的API来获取数据库连接。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值