I.项目基础信息
NACOS 服务端版本:1.3.2
Spring Cloud :Hoxton.SR8
Spring Boot : 2.3.3.RELEASE
spring-cloud-alibaba-starters: 2.2.7 release
nacos-client: 2.0.3
II.错误信息
Server check fail, please check server nacos.xx.com ,port 9848 is available , error ={}
2022-03-25 14:02:43.621|[,| |]|main|INFO |com.alibaba.nacos.common.utils.LoggerUtils:(60)|[729d8436-9170-46fe-b2a9-33e354bf2259_config-0] Try to connect to server on start up, server: {serverIp='nacos.xxx.com', server main port=8848}
2022-03-25 14:02:48.580|[,| |]|main|ERROR|com.alibaba.nacos.common.utils.LoggerUtils:(99)|Server check fail, please check server nacos.xxx.com ,port 9848 is available , error ={}
java.util.concurrent.TimeoutException: Waited 3000 milliseconds (plus 12 milliseconds, 501700 nanoseconds delay) for com.alibaba.nacos.shaded.io.grpc.stub.ClientCalls$GrpcFuture@3e134896[status=PENDING, info=[GrpcFuture{clientCall={delegate={delegate=ClientCallImpl{method=MethodDescriptor{fullMethodName=Request/request, type=UNARY, idempotent=false, safe=false, sampledToLocalTracing=true, requestMarshaller=com.alibaba.nacos.shaded.io.grpc.protobuf.lite.ProtoLiteUtils$MessageMarshaller@4917d36b, responseMarshaller=com.alibaba.nacos.shaded.io.grpc.protobuf.lite.ProtoLiteUtils$MessageMarshaller@35c09b94, schemaDescriptor=com.alibaba.nacos.api.grpc.auto.RequestGrpc$RequestMethodDescriptorSupplier@2d0bfb24}}}}}]]
at com.alibaba.nacos.shaded.com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:508)
at com.alibaba.nacos.common.remote.client.grpc.GrpcClient.serverCheck(GrpcClient.java:146)
2022-03-25 14:02:48.591|[,| |]|main|INFO |com.alibaba.nacos.common.utils.LoggerUtils:(60)|[729d8436-9170-46fe-b2a9-33e354bf2259_config-0] Try to connect to server on start up, server: {serverIp='nacos.xxx.com', server main port=8848}
2022-03-25 14:02:51.282|[,| |]|main|ERROR|com.alibaba.nacos.common.utils.LoggerUtils:(99)|Server check fail, please check server nacos.xxx.com ,port 9848 is available , error ={}
java.util.concurrent.ExecutionException: com.alibaba.nacos.shaded.io.grpc.StatusRuntimeException: UNAVAILABLE: io exception
at com.alibaba.nacos.shaded.com.google.common.util.concurrent.AbstractFuture.getDoneValue(AbstractFuture.java:566)
at com.alibaba.nacos.shaded.com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:445)
at com.alibaba.nacos.common.remote.client.grpc.GrpcClient.serverCheck(GrpcClient.java:146)
III.问题原因:使用NacosClient2.* 版本 连接 Nacos服务端1.*
官网说明:
兼容性
Nacos2.0的服务端完全兼容1.X客户端。Nacos2.0客户端由于使用了gRPC,无法兼容Nacos1.X服务端,请勿使用2.0以上版本客户端连接Nacos1.X服务端。
Nacos2.0版本相比1.X新增了gRPC的通信方式,因此需要增加2个端口。新增端口是在配置的主端口(server.port)基础上,进行一定偏移量自动生成。
| 端口 | 与主端口的偏移量 | 描述 |
|---|---|---|
| 9848 | 1000 | 客户端gRPC请求服务端端口,用于客户端向服务端发起连接和请求 |
| 9849 | 1001 | 服务端gRPC请求服务端端口,用于服务间同步等 |
IV .问题解决
思路1:
服务端客户端都升级到 Nacos 2.*
思路2:
现有客户端降级到 Nacos Client 1.*
强制指定nacos client版本
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client</artifactId>
<version>1.2.1</version>
</dependency>
参考文献
本文档记录了使用Nacos Client 2.0.3尝试连接Nacos服务端1.3.2时遇到的`Server check fail`错误。错误信息显示端口9848不可用。问题源于Nacos 2.0客户端的gRPC通信方式不兼容1.x服务端。解决方案包括将服务端和客户端都升级到Nacos 2.*或降级客户端至1.*版本。
58

被折叠的 条评论
为什么被折叠?



