2023-11-24
后端 Java
微服务项目启动出现com.alibaba.nacos.api.exception.NacosException: Client not connected, current status:STARTING异常:
1. 问题起因:
由于本人的服务器内存不足,而此时我手里有两台服务器,一台2c2g(服务器A)和一台2c4g(服务器B),此时我的项目打算部署在服务器A上,Nacos在服务器B上,当我在本地idea运行项目时,报了 com.alibaba.nacos.api.exception.NacosException: Client not connected, current status:STARTING异常 异常,连接不上服务器上的Nacos。
2. 问题排查
大致思路是:Nacos是否成功启动?云防火墙和系统防火墙端口是否开启?需要开放哪些端口?
2.1. Nacos是否成功启动?在服务器上使用如下命令 `ps -ef | grep nacos` ,有输出结果就表示nacos已经开启了。
2.2. 云防火墙和系统防火墙端口是否开启?需要开放哪些端口?
首先,要搞清楚需要开放哪些端口。如果是Nacos 1.X版本,需要开启8848端口即可。如果是Nacos 2.X版本,需要开启9848端口(默认)。
参考官网:https://nacos.io/zh-cn/docs/v2/upgrading/2.0.0-compatibility.html ==> 图1和图2
3. 问题深究
首先,我使用的是Nacos2.X版本,通过百度和官网,将所有可能的端口都开放了(8848、7848、9848、9849....),问题一下子就解决了。ok,到此为止就结束了。咳咳,还是再多说一嘴吧。
核心代码在com.alibaba.nacos.common.remote.client.RpcClient的 resolveServerInfo() 和 connectToServer() 方法中,见图3和图4.
(我报错的原因在于,我云服务器的9848端口没有开放,故连接不上服务器的Nacos)[困]
如果此时防火墙没有开放该 port ,则response=null,之后还会继续进行重新连接,才会后之后的报错:Client not connected, current status:STARTING。
后来我简单尝试了一下,看看能不能修改grpc端口9848,比如重新设置nacos.server.grpc.port.offset并修改startup.sh脚本,观察了一下配置文件,没有找到可行办法,那就先到此为止吧....
14
0
分享
操作
评论
问答助学
相关内容
0个评论
全部评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
