bug记录
com.alibaba.nacos.shaded.io.grpc.StatusRuntimeException: UNAVAILABLE: io exception
...
c.a.n.c.remote.client.grpc.GrpcClient : Server check fail, please check server 121.4.119.16 ,port 9848 is available , error ={}
...
基础服务nacos2.0.2
本地使用springcloudalibaba套件搭建服务发现
异常的版本:
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>2021.0.4.0</version>
</dependency>
使用这个版本的服务发现,会一直找8848+1000,也就是9848端口,原因是更新后,加了rpc,增加服务发现性能,但是需要端口,于是就默认在8848上做了一个偏移,偏移值是1000,也就是9848端口.
如果你没有暴露9848端口,服务就一直报错,但是你这个偏移量又不能在配置文件中配置。
解决方案1
回退版本到2021.0.1.0
,这个版本中的spring-cloud-starter-alibaba-nacos-discovery
不会去找9848端口。但是也不会使用grpc的新特性
解决方案2
不回退版本,开放9848端口即可
解决方案3
不回退版本,9848端口被其他程序占用,我只想开放8849端口,那么可以在vm启动参数中添加-Dnacos.server.grpc.port.offset=1
或者在启动类硬编码System.setProperty("nacos.server.grpc.port.offset","1");