admin管理员组文章数量:1612067
微服务项目使用nacos集群并且使用nginx进行请求转发出现com.alibaba.nacos.api.exception.NacosException: Client not connected, current status:STARTI报错。
这是因为在nacos2.0版本以上,相比于1.X版本新增了一个gRPC通信方式
在使用nginx进行请求转发时,必须使用TCP转发,不能使用http转发,否则会被nginx断开连接
解决这个报错,需要在nacos集群的每个节点上添加配置grpc.port=你配置的server.post + 1000,例如:
还需要修改nginx的转发方式为tcp,在1.9版本以上nginx已经默认支持tcp代理了,所以只需要在nginx.conf添加以下配置:
注意 :这个配置不要放到http里面
在微服务项目的配置文件修改对应配置:
spring.cloud.nacos.discovery.server-addr=服务器ip:7847 #nginx代理tcp端口 - 1000
为什么要减1000,是因为使用gRPC通信的方式与主端口偏移量为1000,上面有提到。
我们在nginx配置的代理tcp端口为8847,这个端口可以看成是grpc的端口,因为grpc的端口 = nacos主端口 + 1000,因此我们套这个公式就可以得出,nacos的主端口为 = 8847- 1000 = 7847,而我们微服务项目配置nacos端口,其实配置是主端口,因此实际上我们配置要写成
spring.cloud.nacos.discovery.server-addr=服务器ip:7847 #nginx代理tcp端口 - 1000
本文标签: 项目APIExceptionNacosNacosException
版权声明:本文标题:微服务项目启动出现com.alibaba.nacos.api.exception.NacosException: Client not connected, current status:STARTI 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1728627731a1166710.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论