关于连接池参数testWhileIdle,testOnBorrow,testOnReturn的疑问-问答-阿里云开发者社区-阿里云

开发者社区> 落地花开啦> 正文

关于连接池参数testWhileIdle,testOnBorrow,testOnReturn的疑问

2016-06-02 17:39:33 15442 1

我想知道这3个参数如何配置比较好。
目前我们使用微服务框架Dropwizard进行server端接口的开发,该框架使用的是tomcat jdbc pool8,数据库是Mysql5.6
之前出现过如下错误:
The last packet successfully received from the server was 30,303 millisecond
我们对于mysql的配置如下:

max_connections=1000
wait_timeout=30
interactive_timeout=30

tomcat jdbc pool配置为:

minSize: 10
maxSize: 100
checkConnectionOnBorrow: true
checkConnectionOnConnect: true
checkConnectionOnReturn: true
checkConnectionWhileIdle: true

把几个参数都设置为true,貌似是解决了这个问题,然后我查看Druid的github文档
https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_DruidDataSource%E5%8F%82%E8%80%83%E9%85%8D%E7%BD%AE
发现druid的推荐配置为:

<property name="validationQuery" value="SELECT 'x'" />
<property name="testWhileIdle" value="true" />
<property name="testOnBorrow" value="false" />
<property name="testOnReturn" value="false" />
  1. 请问为什么druid设置testOnBorrow和testOnReturn为false呢, 如果从pool中获取(borrow)一个失效的连接怎么办??
  2. 启用testOnBorrow以及testWhileIdle后,是不是testOnReturn也就可以设置为false了??
  3. dropwizard中为什么必须把这几个参数都设置为true才能解决问题??
  4. my.cnf中我这么配置没问题吧?网上好多说要把timeout设置为1年,我认为不太对,因为会出现大量sleep连接~
取消 提交回答
全部回答(1)
  • 落地花开啦
    2019-07-17 19:25:24
    1. testOnBorrow和testOnReturn在生产环境一般是不开启的,主要是性能考虑。失效连接主要通过testWhileIdle保证,如果获取到了不可用的数据库连接,一般由应用处理异常。
    2. 对于常规的数据库连接池,testOnBorrow等配置参数的含义和最佳实践可以参考官方文档。
    3. 数据源库连接池的实现原理与dropwizard无关,既然mysql server的wait_timeout等参数被设置为30秒,那么就会主动关闭不活跃的客户端连接,几个test参数设置为true可以通过充分的检测移除不可用连接,并重新创建新的连接,保证应用都获取到健康的连接。
    4. my.conf中的wait_timeout参数和interactive_timeout参数默认是28800秒,也就是8小时。一般在生产环境这个数值会被设置为7天甚至30天,目的是保证mysql不会因为流量稀少而主动关闭session.
    0 0
相关问答

17

回答

【大咖问答】对话PostgreSQL 中国社区发起人之一,阿里云数据库高级专家 德哥

阿里ACE 彭飞 2019-07-10 09:36:10 961336浏览量 回答数 17

162

回答

惊喜翻倍:免费ECS+免费环境配置~!(ECS免费体验6个月活动3月31日结束)

豆妹 2014-10-29 17:52:21 222926浏览量 回答数 162

145

回答

【新手入门】云服务器linux使用手册

fanyue88888 2012-11-26 17:14:18 157032浏览量 回答数 145

8

回答

OceanBase 使用动画(持续更新)

mq4096 2019-02-20 17:16:36 333771浏览量 回答数 8

110

回答

OSS存储服务-客户端工具

newegg11 2012-05-17 15:37:18 292211浏览量 回答数 110

18

回答

阿里云开放端口权限

xcxx 2016-07-20 15:03:33 642998浏览量 回答数 18

38

回答

安全组详解,新手必看教程

我的中国 2017-11-30 15:23:46 256820浏览量 回答数 38

21

回答

请教一下数据量有100万条左右要什么配置?

易网网络 2013-03-27 15:18:02 192303浏览量 回答数 21

249

回答

阿里云LNAMP(Linux + Nginx + Apache + MySQL + PHP)环境一键安装脚本

云代维 2014-02-14 15:26:06 302549浏览量 回答数 249

2

回答

区域选择帮助

fanyue88888 2012-12-07 15:54:30 203971浏览量 回答数 2
+关注
落地花开啦
喜欢技术,喜欢努力的人
0
文章
7824
问答
问答排行榜
最热
最新
推荐问答
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载