当用户开启了空闲连接的健康探测时,在Druid的源码内部会出发怎么样的逻辑?
入口是MyBatis连接Druid时,getConnectionDirect是一个循环,在循环里从连接池里取一个空闲连接,当探测空闲连接健康开关开启时,Druid会去检测连接的空闲时间是否超过配置的阈值。 如果超过了,循环会发起一个连接的健康探测。如果探测出来连接有问题,Druid会直接把连接关闭。在循环里面,会回到循环开头,从连接池里再拿一个连接,直到拿到一个可用的连接,如果连接池里所有的连接都有问题,会重新创建连接。
答复内容摘自《深入MySQL实战》,这本电子书收录开发者藏经阁 下载连接:https://developer.aliyun.com/topic/download?id=1167
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。