在使用Spring Cloud Alibaba启动Nacos时报错Client not connected,current status:STARTING,在网上找了几篇文章,方法也是如繁花似锦,千奇百怪。也按照那些方法走了一遍,活活的当了一次大冤种,当然也可能是每个人都用自己的方法解决了,但是不适用我的问题。这里我总结了下,大概做了以下几个步骤。
一:开放端口
给出的原因是:Nacos2.0版本相比1.X新增了gRPC的通信方式,导致了一个问题 你需要再服务器防火墙多开两个端口 例如你部署的端口是8848 那还需要再开9848和9849来支持gRPC的端口。
端口 | 与主端口偏移量 | 描述 |
9848 | 1000 | 客户端gRPC请求服务端端口,用于客户端向服务端发起连接和请求 |
9849 | 1001 | 服务端gRPC请求服务端端口,用于服务间同步等 |
命令如下:
添加防火墙开放端口
firewall-cmd --zone=public --add-port=9848/tcp --permanent
firewall-cmd --zone=public --add-port=9849/tcp --permanent
防火墙重新加载配置文件
firewall-cmd --reload
查看防火墙开发的端口
firewall-cmd --zone=public --list-ports
因为我自己用的是阿里云的服务器,所以也尝试添加了对应的安全组
二:检查Nacos客户端和Nacos服务端的版本是否一致
我第一次使用的版本情况是
Spring Cloud Alibaba | 2.2.10-RC1 |
Spring Boot | 2.3.12.RELEASE |
Nacos客户端 | 2.2.0 |
Nacos服务端 | 2.0.3 |
官网给出的各版本和组件的搭配关系:版本说明 · alibaba/spring-cloud-alibaba Wiki · GitHub
所以升级了我服务端的Nacos版本:
三:修改SpringCloudAlibaba的版本(解决,非集群版本)
SpringCloudAlibaba | 2.2.6.RELEASE |
SpringBoot | 2.3.12.RELEASE |
Nacos客户端 | 1.4.2 |
Naocs服务端 | 2.2.0 |
<spring-boot.version>2.3.12.RELEASE</spring-boot.version> <spring-cloud-alibaba.version>2.2.6.RELEASE</spring-cloud-alibaba.version><dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>${spring-boot.version}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-dependencies</artifactId> <version>${spring-cloud-alibaba.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>