1.数据库服务异常时,druid会一直循环获取connection,最终导致整个服务卡死。2.如果设置breakAfterAcquireFailure为true,获取连接异常时不会再一直循环,但是数据库服务恢复正常时druid又无法进行重连。异常如下:
请问最新版本的druid有没有解决办法?
z8dt9xmd1#
循环创建连接并不是导致服务卡死的原因。服务卡死的原因可能是业务线程取不到连接时会进行等待,等待时长受 maxWait 配置影响。由于 druid 本身的等待逻辑也有问题,业务线程实际等待的时间是 maxWait * 2。可以通过缩短 maxWait 降低影响。
1条答案
按热度按时间z8dt9xmd1#
循环创建连接并不是导致服务卡死的原因。服务卡死的原因可能是业务线程取不到连接时会进行等待,等待时长受 maxWait 配置影响。由于 druid 本身的等待逻辑也有问题,业务线程实际等待的时间是 maxWait * 2。可以通过缩短 maxWait 降低影响。