项目中使用clickhouse-native-jdbc访问Clickhouse,实验室运行了段时间,需求方反应响应变的很慢。
过程就是Springboot服务器要访问Clickhouse服务器取数据。
1. 试了Ping,正常,稳定且快。内网
2. 2部机器的防火墙也关了
3. 问题是单纯的数据返回慢,结果是正确的。
4. springboot的日志显示,执行一次prepareStatement.excuteQuery()这句前后花了3-6秒
5. clickhouse服务器的日志如下,
意思clickhouse建立个TCP连接花了6秒。
去github上了问了clickhouse的项目,有位大哥回复我dns timeout issue
去springboot服务器看了/etc/resolv.conf看了dns server的列表,果然第1个dns ping不通,它要等dns确定过期。删掉第一个dns,问题解决,速度就上去了。