初心 - Nacos
type: channel
link: https://www.mayanpeng.cn/tag/Nacos/
items: Nacos2.X报错“Client not connected, current status:STARTING”

Nacos2.X报错“Client not connected, current status:STARTING”
type: item
date: 2023-12-05T13:32:00+08:00
description: 环境信息Nacos v2.2.3spring-boot v2.7.6spring-cloud v2021.0.5spring-cloud-alibaba v2021.0.5.0错误已开放8848端口，可以正常通过控制台面板管理配置中心，在命令中端中也可以通过下面的命令手动注册服务curl -X POST 'http://127.0.0.1:8848/nacos/v1/ns/instance?serviceName=nacos.naming.serviceName&ip=20.18.7.10&port=8080'但是IDE中通过代码的形式无法注册到服务中心，报错”Client not connected, current status:STARTING“解决通过查询官方文档，官方文档中已经明确给出了解决方案Nacos2.0版本相比1.X新增了gRPC的通信方式，因此需要增加2个端口。新增端口是在配置的主端口(server.port)基础上，进行一定偏移量自动生成。使用VIP/nginx请求时，需要配置成TCP转发，不能配置http2转发，否则连接会被nginx断开。 9849和7848端口为服务端之间的通信端口，请勿暴露到外部网络环境和客户端测。启动时报错Connection is unregistered.或Client not connected,current status:STARTING.原因是客户端gRPC无法和服务端创建连接，请先使用telnet ${nacos.server.address}:${nacos.server.grpc.port}进行测试，查看网络是否畅通，服务端端口是否已经正确监听。若服务端没有问题，查看配置是否有误，服务端和客户端的所配置的端口应一致。若配置也没有问题，查看是否有防火墙或VIP端口转发问题，Nacos2.0的gRPC端口均通过主端口的偏移量计算产生，因此端口转发也需要满足该偏移量。Nacos2.0增加了9848，9849端口来进行GRPC通信，我需要在application.properties中额外配置吗？不需要，这两个端口在Nacos2.0内部是通过8848+1000以及8848+1001这种偏移量方式计算出来的，不需要用户额外在配置文件中配置。但如果使用的是docker或存在端口转发方式启动，需要把这两个端口进行配置。启动nacos2.0时希望用nginx 代理，9848这个端口怎样处理，要通过nginx暴露出来么？以及docker是否需要映射？如果存在防火墙或者nginx端口转发问题，需要进行相应的端口暴露配置。如在nginx中，在已经暴露8848(x)的基础上，需要额外暴露9848（x+1000)。端口转发例子以我本地举例，我本地是用docker-compose进行部署，如果我使用30045暴露8848端口，同时也要用31045（x+1000）来暴露9848端口