Druid多数据源情况下的数据库重连问题
上一篇踩坑日记写完之后,自己反复读了几遍,感觉读起来有点怪怪的,也许是因为自己做程序员久了,口头表达的次数也少了,所以很明显感觉到自己有时候说话不那么顺溜了,想当年我随随便便就可以口若悬河,滔滔不绝(哈哈哈,开玩笑)。所以为了让自己的文章看起来更加简介明了,又让有机会读到这些文章的朋友们能够非常快速的理解我遇到的情况,和怎么样解决的。所以以后我打算我的踩坑日记使用STAR法则来描述,其实在答辩或者面试的过程中,大家也可以使用SATR法则来描述自己的项目等。接下来,我们进入今天的正题。
情境(situation):
在生产环境中,数据库密码是托管在公司改造后的disconf上(不是直接存储在properties文件),然后数据库密码托管程序每过一段时间,机会进行数据库密码的校验,所以应用会有数据库长链接一直存在。然后有一天,运维在晚上没有业务流量的时候,进行了数据库的主备切换。这个过程中,会产生短暂的数据库连接不可用,数据库密码托管程序会报错,因为数据库连接连不上了。当主备切换完成后,数据库恢复正常,数据库密码托管程序也恢复了正常,但是发现应用的数据库连接池获取连接的时候,一直报错。我们数据库连接池配置使用的是Druid,它提供了数据库重连机制,但是在我们生产环境中&