- 问题描述
- 环境描述:后台服务部署了两个Tomcat实例
- 问题描述:调用Http接口(使用域名方式调用),有时候会成功,有时候会失败,并且成功和失败比例大致为1:1。
- 服务架构
-
排查问题
- 通过查看日志了解到,请求到达了Tomcat服务,可以排除是由于Nginx转发出错导致。
- 现在可以确定的是问题肯定出现在Tomcat调用接口X的时候,但是接口X还有其他的服务在调用,没有出现问题,也可以排除是接口X的问题。
- 但是请求不是全部失败,而是部分失败,并且失败比大致是1:1,初步判断不是由于代码问题导致。
- 日志中体现出来的是请求发出了,但是没有响应,代码中设置了超时,但是也没有抛出
java.net.SocketTimeoutException: connect timed out
。 - 经过排查,最终发现失败的问题体现了在其中的一台服务器上面了,首先是查看Web服务,Web服务没有问题,运行都是正常的,之后检查了服务器的相关配置,发现是由于运维同学对于这台服务器没有配置相应的DNS导致请求外部链接请求不通。
-
总结
问题也不是什么大问题,但是还是对于经验不足的我来说比较难以觉察,有些问题通过浮与表面的现象是检查不出什么问题,有时候也是和自己本能觉察的相差甚远,在排查问题之前一定要对问题本身进行条理性的梳理,对相关知识点进行一个准备,在动手来解决问题。
网友评论