alibaba / nacos

an easy-to-use dynamic service discovery, configuration and service management platform for building cloud native applications.
https://nacos.io
Apache License 2.0
30.1k stars 12.81k forks source link

我正在使用开源的Nacos,并已在Kubernetes中部署了Nacos服务,通过端口映射可在集群外访问Nacos控制台。Kubernetes使用NodePort类型暴露了8848、9848、9849、7848和9555端口,但在尝试注册时遇到问题,出现“Client not connected, current status: STARTING”的错误,导致启动失败。 #12685

Closed baibin20 closed 3 days ago

baibin20 commented 5 days ago

我目前使用的是开源的nacos,然后我在k8s中搭建了nacos服务,我需要在k8s外访问,我做了端口的映射k8s外可以访问登录nacos的控制台的,k8s使用的是NodePort 类型,对外暴漏了:8848,9848,9849,7848,9555这几个端口,但是就是注册连接不上,然后报错:2024-09-25 14:53:54,637 [main] ERROR [org.springframework.boot.SpringApplication] SpringApplication.java:818 - Application run failed org.springframework.context.ApplicationContextException: Failed to start bean 'webServerStartStop'; nested exception is java.lang.reflect.UndeclaredThrowableException at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:182) at org.springframework.context.support.DefaultLifecycleProcessor.access LifecycleGroup.start(DefaultLifecycleProcessor.java:357) at java.lang.Iterable.forEach(Iterable.java:75) at org.springframework.context.support.DefaultLifecycleProcessor.startBeans(DefaultLifecycleProcessor.java:156) at org.springframework.context.support.DefaultLifecycleProcessor.onRefresh(DefaultLifecycleProcessor.java:124) at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:946) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:594) at org.springframework.boot.web.reactive.context.ReactiveWebServerApplicationContext.refresh(ReactiveWebServerApplicationContext.java:66) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:732) at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:409) at org.springframework.boot.SpringApplication.run(SpringApplication.java:308) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1300) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1289) at com.shaoruicode.shaorui.gateway.ShaoruiGatewayApplication.main(ShaoruiGatewayApplication.java:34) Caused by: java.lang.reflect.UndeclaredThrowableException: null at org.springframework.util.ReflectionUtils.rethrowRuntimeException(ReflectionUtils.java:147) at com.alibaba.cloud.nacos.registry.NacosServiceRegistry.register(NacosServiceRegistry.java:83) at org.springframework.cloud.client.serviceregistry.AbstractAutoServiceRegistration.register(AbstractAutoServiceRegistration.java:232) at com.alibaba.cloud.nacos.registry.NacosAutoServiceRegistration.register(NacosAutoServiceRegistration.java:78) at org.springframework.cloud.client.serviceregistry.AbstractAutoServiceRegistration.start(AbstractAutoServiceRegistration.java:133) at org.springframework.cloud.client.serviceregistry.AbstractAutoServiceRegistration.bind(AbstractAutoServiceRegistration.java:98) at org.springframework.cloud.client.serviceregistry.AbstractAutoServiceRegistration.onApplicationEvent(AbstractAutoServiceRegistration.java:86) at org.springframework.cloud.client.serviceregistry.AbstractAutoServiceRegistration.onApplicationEvent(AbstractAutoServiceRegistration.java:47) at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:178) at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:171) at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:145) at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:429) at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:386) at org.springframework.boot.web.reactive.context.WebServerManager.start(WebServerManager.java:57) at org.springframework.boot.web.reactive.context.WebServerStartStopLifecycle.start(WebServerStartStopLifecycle.java:40) at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:179) ... 14 common frames omitted Caused by: com.alibaba.nacos.api.exception.NacosException: Client not connected, current status:STARTING at com.alibaba.nacos.common.remote.client.RpcClient.request(RpcClient.java:645) at com.alibaba.nacos.common.remote.client.RpcClient.request(RpcClient.java:625) at com.alibaba.nacos.client.naming.remote.gprc.NamingGrpcClientProxy.requestToServer(NamingGrpcClientProxy.java:362) at com.alibaba.nacos.client.naming.remote.gprc.NamingGrpcClientProxy.doRegisterService(NamingGrpcClientProxy.java:215) at com.alibaba.nacos.client.naming.remote.gprc.NamingGrpcClientProxy.registerService(NamingGrpcClientProxy.java:129) at com.alibaba.nacos.client.naming.remote.NamingClientProxyDelegate.registerService(NamingClientProxyDelegate.java:98) at com.alibaba.nacos.client.naming.NacosNamingService.registerInstance(NacosNamingService.java:143) at com.alibaba.cloud.nacos.registry.NacosServiceRegistry.register(NacosServiceRegistry.java:75) ... 28 common frames omitted

XiaZhouxx commented 5 days ago

检查下配置是否正确呢, 客户端连接会打印当时连接server的信息

baibin20 commented 5 days ago

检查下配置是否正确呢, 客户端连接会打印当时连接server的信息

连接都是正确的,端口及IP地址都是对的 这是我相关的配置 spring: application: name: @artifactId@ cloud: nacos: username: nacos password: nacos discovery:

server-addr: nacos-dev.aokesi-dev.svc.cluster.local:8848

    server-addr: 192.168.1.75:31011
    service: shaorui-gateway
  config:

server-addr: nacos-dev.aokesi-dev.svc.cluster.local:8848

    server-addr: 192.168.1.75:31012

config: import:

这是控制台打印的信息:

2024-09-25 15:50:30 [main] ERROR o.s.boot.SpringApplication - Application run failed org.springframework.context.ApplicationContextException: Failed to start bean 'webServerStartStop'; nested exception is java.lang.reflect.UndeclaredThrowableException at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:182) at org.springframework.context.support.DefaultLifecycleProcessor.access$200(DefaultLifecycleProcessor.java:54) at org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.start(DefaultLifecycleProcessor.java:357) at java.lang.Iterable.forEach(Iterable.java:75) at org.springframework.context.support.DefaultLifecycleProcessor.startBeans(DefaultLifecycleProcessor.java:156) at org.springframework.context.support.DefaultLifecycleProcessor.onRefresh(DefaultLifecycleProcessor.java:124) at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:946) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:594) at org.springframework.boot.web.reactive.context.ReactiveWebServerApplicationContext.refresh(ReactiveWebServerApplicationContext.java:66) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:732) at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:409) at org.springframework.boot.SpringApplication.run(SpringApplication.java:308) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1300) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1289) at com.shaoruicode.shaorui.gateway.ShaoruiGatewayApplication.main(ShaoruiGatewayApplication.java:34) Caused by: java.lang.reflect.UndeclaredThrowableException: null at org.springframework.util.ReflectionUtils.rethrowRuntimeException(ReflectionUtils.java:147) at com.alibaba.cloud.nacos.registry.NacosServiceRegistry.register(NacosServiceRegistry.java:83) at org.springframework.cloud.client.serviceregistry.AbstractAutoServiceRegistration.register(AbstractAutoServiceRegistration.java:232) at com.alibaba.cloud.nacos.registry.NacosAutoServiceRegistration.register(NacosAutoServiceRegistration.java:78) at org.springframework.cloud.client.serviceregistry.AbstractAutoServiceRegistration.start(AbstractAutoServiceRegistration.java:133) at org.springframework.cloud.client.serviceregistry.AbstractAutoServiceRegistration.bind(AbstractAutoServiceRegistration.java:98) at org.springframework.cloud.client.serviceregistry.AbstractAutoServiceRegistration.onApplicationEvent(AbstractAutoServiceRegistration.java:86) at org.springframework.cloud.client.serviceregistry.AbstractAutoServiceRegistration.onApplicationEvent(AbstractAutoServiceRegistration.java:47) at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:178) at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:171) at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:145) at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:429) at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:386) at org.springframework.boot.web.reactive.context.WebServerManager.start(WebServerManager.java:57) at org.springframework.boot.web.reactive.context.WebServerStartStopLifecycle.start(WebServerStartStopLifecycle.java:40) at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:179) ... 14 common frames omitted Caused by: com.alibaba.nacos.api.exception.NacosException: Client not connected, current status:STARTING at com.alibaba.nacos.common.remote.client.RpcClient.request(RpcClient.java:645) at com.alibaba.nacos.common.remote.client.RpcClient.request(RpcClient.java:625) at com.alibaba.nacos.client.naming.remote.gprc.NamingGrpcClientProxy.requestToServer(NamingGrpcClientProxy.java:362) at com.alibaba.nacos.client.naming.remote.gprc.NamingGrpcClientProxy.doRegisterService(NamingGrpcClientProxy.java:215) at com.alibaba.nacos.client.naming.remote.gprc.NamingGrpcClientProxy.registerService(NamingGrpcClientProxy.java:129) at com.alibaba.nacos.client.naming.remote.NamingClientProxyDelegate.registerService(NamingClientProxyDelegate.java:98) at com.alibaba.nacos.client.naming.NacosNamingService.registerInstance(NacosNamingService.java:143) at com.alibaba.cloud.nacos.registry.NacosServiceRegistry.register(NacosServiceRegistry.java:75) ... 28 common frames omitted 2024-09-25 15:50:31 [Thread-10] WARN c.a.nacos.common.notify.NotifyCenter - [NotifyCenter] Start destroying Publisher 2024-09-25 15:50:31 [Thread-5] WARN c.a.n.c.http.HttpClientBeanHolder - [HttpClientBeanHolder] Start destroying common HttpClient 2024-09-25 15:50:31 [Thread-10] WARN c.a.nacos.common.notify.NotifyCenter - [NotifyCenter] Destruction of the end 2024-09-25 15:50:31 [Thread-5] WARN c.a.n.c.http.HttpClientBeanHolder - [HttpClientBeanHolder] Destruction of the end Disconnected from the target VM, address: '127.0.0.1:38766', transport: 'socket'

Process finished with exit code 1

baibin20 commented 5 days ago

走过路过别错过,瞅瞅这个问题,头发都要掉光了,哭

XiaZhouxx commented 5 days ago

客户端还需要和server建立rpc长链接, 是基于你配置的连接端口偏移+1000, 那个偏移端口是可用的吗?

baibin20 commented 5 days ago

客户端还需要和server建立rpc长链接, 是基于你配置的连接端口偏移+1000, 那个偏移端口是可用的吗?

可用的,我可以telnet通9848这个端口

baibin20 commented 5 days ago

客户端还需要和server建立rpc长链接, 是基于你配置的连接端口偏移+1000, 那个偏移端口是可用的吗?

这是我从k8s中映射出来的端口,我都试过,都连接不上,哭: image

XiaZhouxx commented 5 days ago

我说的是你配置的192.168.1.75:31012基于这个偏移

baibin20 commented 5 days ago

我说的是你配置的192.168.1.75:31012基于这个偏移

您说的是:32012端口吗?

baibin20 commented 5 days ago

我说的是你配置的192.168.1.75:31012基于这个偏移

这个端口不可用 image

XiaZhouxx commented 5 days ago

你这个客户端应该都是连接 31011 端口 然后9848应该映射到32011

baibin20 commented 5 days ago

你这个客户端应该都是连接 31011 端口 然后9848应该映射到32011

感谢大哥,受小弟一拜

baibin20 commented 5 days ago

你这个客户端应该都是连接 31011 端口 然后9848应该映射到32011

大哥还有一个问题,我下线的某一个服务的时候报错: image

XiaZhouxx commented 5 days ago

你看看这个呢 #12666

baibin20 commented 5 days ago

你看看这个呢 #12666

好的,收到,大哥