问题发现
产品运行过程中经常出现Connection disabled,但再次重试就会正常,出现次数多了以后,我就去找了相关的资料,试图解决这些问题,网上大多都是druid的配置问题
或mysql的配置超时时间的问题,经过我的一一验证,都不是这些问题,最终找到了网上的一篇文章,说如果druid的keepAlive配置为false的话,这些探活机制的配置是不生效的,于是我发现了ruoyi的配置问题,在DruidProperties配置中,没有keepAlive这个属性,所以导致keepAlive一直是false,导致探活机制是失效的,就会出现上述的connection disabled的问题
解决办法
首先在application-xxx.yml中druid配置中追加配置keepAlive: true
然后在DruidProperties中添加属性keepAlive,并在构造器中set属性即可
问题总结
其实出现问题的原因和网上说的差不多,就是mysql中的连接已经过期而druid连接池不知道,导致druid获取了已经失效的连接,导致报错