druid中的创建连接线程在网络IO位置每次都阻塞15秒,数据库使用的是rds,想知道那个超时参数配置在什么地方?
跟踪了druid源码只发现有个socketTimeout参数,而且我是使用的默认值0(永久阻塞)
数据库驱动包mysql-connector-java-5.1.22-bin.jar我也看过了没发现有那一块配置相关的默认值,数据库(rds)也没有相关参数能对上
如下:
看异常堆栈得出握手成功,在auth认证的时候失败,我们的业务服务器与数据库不在一个网段,并且
我们的业务服务器均未启用防火墙,
想请阿里的网络组的大神看看是不是交换机或路由器的防火墙设置某个参数造成的,多谢
异常堆栈信息
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
根据您提供的问题描述和异常情况,您在使用Druid连接池时遇到创建连接线程在网络IO位置阻塞15秒的问题,尤其是在认证(auth认证)阶段失败。您已检查了Druid的socketTimeout
参数,并确认其为默认值0,意味着该参数不会导致您遇到的超时现象。同时,您也查看了数据库驱动和RDS配置,未发现直接相关的超时设置。
结合您的场景,这里有几个可能的方向和建议进行排查:
检查网络环境与配置:
深入分析异常堆栈:
数据库连接字符串与认证方式:
mysql_native_password
)与数据库配置匹配。数据库服务端日志:
Druid其他相关配置:
socketTimeout
,但Druid还有其他与时间相关的配置项,例如connectTimeout
(数据库驱动与数据库服务器建立TCP连接的超时时间)。请确认这些参数是否符合预期,或者尝试调整以排除网络延迟或不稳定导致的问题。网络诊断工具:
tcpdump
或Wireshark)捕获业务服务器与RDS之间的网络流量,分析认证过程中的数据包交互,这有助于定位是在哪一步骤发生阻塞或失败。咨询阿里云技术支持:
综上所述,由于直接的超时配置似乎不是问题根源,需要从网络环境、认证细节、日志分析以及底层网络架构等多个角度综合排查。希望上述建议能帮助您找到问题所在并解决。