关于在idea启动服务,注册到nacos报TimeoutException的超时错误提示检查9848端口,但最后服务注册&启动双成功的问题please check server 127.0.0
问题描述:
控制台日志截取如下:
2024-08-19 15:41:28.055 ERROR 6916 --- [ main] c.a.n.c.remote.client.grpc.GrpcClient : Server check fail, please check server 127.0.0.1 ,port 9848 is available , error ={}
java.util.concurrent.TimeoutException: Waited 3000 milliseconds (plus 8 milliseconds, 779300 nanoseconds delay)
解决方法:
关闭你的360安全卫士!!!
我是真的暴躁,找了一圈,调试了各种方法,最后因为360能量球太碍眼怒关360,发现java程序顺利注册nacos-client,没有报错。。。
好了,急着解决问题的家人们可以撤退了。接下来,描述一下为了去掉这个报错的查资料过程。
挽尊一下:因为电脑上有几个卸不掉的顽固软件,才下载的360来以毒攻毒,没想到这浓眉大眼的在这儿给我挖了个坑,再见。
调试过程:
全是在CSDN站内找的方法,算是归纳一下吧
1. 第一次尝试
定义防火墙出入站规则,放行nacos用到的所有端口:
因为安装的nacos是2.x版本,站内说的是2.x版本是新增了gRPC通信,所以nacos端口有了1000的偏移量,而默认的端口是8848,所以会去连9848端口,还有7848、9849端口不知道为什么就用到了,反正4个端口都在windows防火墙启动了出入站放行的规则,然而,我这儿没有用...原因,大家也知道了...就是无语...我防火墙都没拦了,你360给我拦一下有意思吗?啊?啊?啊?
2. 第二次尝试:
核对spring-boot版本和 alibaba-cloud依赖版本和 nacos的版本,是不是跟官方建议的是对应的。这个对照表可以在站内找,原表是在github上,不用魔法很难加载出来。附原表连接。
版本说明 · alibaba/spring-cloud-alibaba Wiki · GitHub
当时我以为是版本号没对上,我本地安装的版本是nacos2.2.3,项目的alibaba依赖是2021.0.4.0,对应的nacos-client版本是2.0.4。
然后我猜架构大概是nacos服务端在本地,版本是2.2.3;客户端是用的alibaba依赖的远程的2.0.4,版本号没对上,然后修改了一个服务的pom,用依赖指定了下nacos-client的版本号为2.2.3,然后,新的问题出现了,服务加载到本地了,具体情况我刚开始学也不懂。展示如下:
之后,再把依赖版本改回2.0.4刷一下,就又会加载alibaba...remote.client那个词条了。
还尝试修改了alibaba-cloud的依赖版本...以及更改配置文件的尝试...没什么用不说了
附上参考链接。
3. 第三次尝试
搜到一条相同的问题描述,跟着去看了源码,RpcClient里面connectToServer会重连三次,第一次超时会报错,但第二次一般就连上了,可以在日志里看到。
然后我初步得出结论:是我网卡/内存不够,连alibaba连得太慢,谁能想到啊。
附上参考链接。
Nacos客户端启动出现9848端口错误分析(非版本升级问题)-CSDN博客
还有一些零零碎碎的尝试,没什么用,也懒得找参考的哪篇博客,就这样。