jdbc om.microsoft.sqlserver.jdbc.SQLServerDriver 受 DNS 解析速度影响,卡顿问题

作者: JavasBoy 分类: java 发布时间: 2018-11-13 16:24 ė1348 views 6没有评论

问题原因是线上跑java的服务器接口从昨天晚上开始大量报超时,检查服务器负载及网络正常。后面通过一个/check健康检查接口找到慢的原因为与MSSQL数据库连接慢。
分析及解决步骤:
1、把/check接口与业务代码剥离,单独抽出jdbc连接的模块。
2、分别在多台不同的服务器上跑,发现有的服务器响应正常,有的需要5秒、10秒左右的时间。
3、通过sqlmd命令直接连接MSSQL服务器响应在0.05秒左右,非常快,排除网络问题。
4、查看系统DNS,有两个,其中一个为 202.96.128.166 ,ping不通,把这个DNS注释掉,再/check接口,响应时间正常。
5、多次替换不同DNS,确认为是其中一个DNS失效,导致java在请求的时候请求到这个DNS不通,等ttl超时后再请求另一个DNS,造成卡顿问题。
6、检查所有服务器系统DNS是否正常,修改为正常的DNS服务器ip.

后面需要研究一下为什么JDBC在使用ip的情况下,还是会走一次系统的DNS请求。

还有一个原因是系统hostname 没有加入到hosts文件中,导致hostname无法解析。

本文出自 刘荣星的博客,转载时请注明出处及相应链接。

本文永久链接: https://www.liurongxing.com/jdbc-om-microsoft-sqlserver-jdbc-sqlserverdriver-dns-time-slow.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Ɣ回顶部