专业的编程技术博客社区

网站首页 > 博客文章 正文

记录一次排查nacos出现的无语问题

baijin 2024-10-01 07:15:07 博客文章 4 ℃ 0 评论

问题的起因是本地启动服务进行测试接口,启动之后发现,直接启动失败,并且启动出现了报错,报错信息如下:

  1. 看到报错信息,第一时间我进行了排查,首先我对nacos服务器的进行了telnet访问,包含,8848,8849,7848,发现都是通的,我目前使用的nacos版本是2.1.4版本,因为是2.0版本以后的,需要这三个端口同时通。排查后并没有发现异常。
  2. 在就是对其他的服务进行启动,发现启动服务,有的服务是可以正常启动的,有些则不行,这就很奇怪了。因为我进到测试环境的服务器是都可以正常启动的,是没问题的,而且不跟本地一样,一直在打印这个日志 com.alibaba.nacos.common.remote.client : Send request fail, request = Config ,我一看,这不是发送数据包失败吗?难道是我的测试的nacos被禁止发送数据包了,我对着测试环境的nacos日志,还有配置检查了很多遍,都没啥问题,那这是为什么呢
  3. 随后将问题丢给了百度,谷歌,gpt等等,发现很多人说的是你未开始9849端口,需要开通这个端口,我抱着疑问的态度进行了尝试,试过后发现不是这个问题,还有些帖子说,换个版本,我直接下载了最新版本的nacos,进行切换启动,发现还是解决不了这个问题。
  4. 随后,我打开了nacos-client的源码,对这源码一直去debug,发现了点问题,nacos注册的时候去进行了注册健康检查,我使用debug慢慢走发现,在一些场景写,他返回了403,一些是500,甚至还有504,这我就有点疑问了,可就在这时候,大debug的服务他是可以正常启动的,而且服务还注册上去了,这有点给我整尬住了,不可能每次启动都要把debug打在这里才能启动把,起初以为是设定的健康检查的时长问题,后来发现还真不是。
  5. 问题到这里了,我有点怀疑自我了,是最近更新的代码有问题吗,我尝试在最新的分支开一个分支,将代码回归至可以连接的时间节点,再次启动,发现还是不行,这就见鬼了,代码问题也不是,配置问题也不是,网络问题也不是,我本地是可以对nacos进行telnet端口都是通的,这下我懵了。
  6. 不过解决问题,肯定要分析一下,或许问题不是出在你这边。因为我很久没启动本地服务了,而且有个问题是,上个礼拜听同事说还是可以正常启动的,可这个礼拜就不行了,这就有疑问,因为我们连接的所有服务器都是需要经过代理的,随后我使用排查法进行排查,我叫运维先把测试的nacos端口放开,我将代理关闭,再去进行启动,惊奇的发现,服务是正常运行的,这,这,找了半天是代理服务器的问题
  7. 既然问题已经找到了,我还是要把问题给总结一下,是什么原因导致的这个启动不了,总结发现是因为项目中使用到了dubbo当做rpc进行通讯,无论是nacos的健康检查还是dubbo的注册nacos,都是需要grpc去进行检查并且注册的,所以,因为是这里进行通讯的时候,代理进行了拦截,才会导致这样的问题,既然问题找到了,就去解决吧,将问题整理发给运维同事,同时跟运维同事沟通
  8. 神奇的事情再次出现, 运维同事说这个代理他们根本没动过,非得说是我们的问题,给我测试环境各种重试,还大力说没问题,到这里就知道这个问题有点棘手了,他说不是他们的问题,这个我本地也跟他们说了问题所在,他们找了一下午也没解决,所以我找他们要了个折中的方案,开放外网端口,然后我们将这个服务器直接外网连接,数据库使用内网,这个问题也算了解决了,虽算不上最完美的,不过至少解决了这个问题,找到了问题的所在,后续这个问题再去协调吧

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表