nacos作服务发现注册中心能否实现无注册中心正常启动并自动重试连接中心

Blade 未结 1 966
youngcle
youngcle 剑童 2021-05-31 10:21


nacos作服务发现注册中心
并在微服务应用程序中引入
spring-cloud-starter-alibaba-nacos-discovery

正常情况下,在微服务程序启动前,启动nacos,在启动微服务本身,一切正常。

但如果我的系统重启
各程序配置自动启动,有时nacos会晚于微服务程序,此时服务程序看起来没有正常启动,且会报连接nacos失败等等,如下:
`2021-05-30 13:40:06.392  INFO 12023 --- [           main] o.s.b.w.e.u.UndertowServletWebServer     : Undertow started on port(s) 18601 (http) with context path ''
2021-05-30 13:40:06.947 ERROR 12023 --- [           main] c.a.c.n.registry.NacosServiceRegistry    : nacos registry, MICROSERVICE-PLAN-ELECTRON register failed...NacosRegistration{nacosDiscoveryProperties=NacosDiscoveryProperties{serverAddr='localhost:8848', endpoint='', namespace='', watchDelay=30000, logName='', service='MICROSERVICE-PLAN-ELECTRON', weight=1.0, clusterName='DEFAULT', group='DEFAULT_GROUP', namingLoadCacheAtStart='false', metadata={preserved.register.source=SPRING_CLOUD}, registerEnabled=true, ip='127.0.1.1', networkInterface='', port=18601, secure=false, accessKey='', secretKey='', heartBeatInterval=null, heartBeatTimeout=null, ipDeleteTimeout=null}},

java.lang.IllegalStateException: failed to req API:/nacos/v1/ns/instance after all servers([localhost:8848]) tried: failed to req API:localhost:8848/nacos/v1/ns/instance. code:500 msg: java.net.ConnectException: 拒绝连接 (Connection refused)
at com.alibaba.nacos.client.naming.net.NamingProxy.reqAPI(NamingProxy.java:467) ~[nacos-client-1.1.4.jar:na]
at com.alibaba.nacos.client.naming.net.NamingProxy.reqAPI(NamingProxy.java:389) ~[nacos-client-1.1.4.jar:na]
at com.alibaba.nacos.client.naming.net.NamingProxy.registerService(NamingProxy.java:191) ~[nacos-client-1.1.4.jar:na]
at com.alibaba.nacos.client.naming.NacosNamingService.registerInstance(NacosNamingService.java:207) ~[nacos-client-1.1.4.jar:na]
at com.alibaba.cloud.nacos.registry.NacosServiceRegistry.register(NacosServiceRegistry.java:64) ~[spring-cloud-alibaba-nacos-discovery-2.2.0.RELEASE.jar:2.2.0.RELEASE]`

此时虽然有提示“Undertow started on port(s) 18601 ”,单实际程序并未监听该端口,也无法访问。如果我此时再启动nacos,nacos中可以看到服务已经进行了注册,但程序依然没有进行端口监听,外部消费者无法调用。

我想问是否有什么方式,让这种情况下,微服务程序也能正常的完成其他启动过程,能够正常监听服务端口,同时当nacos恢复后,服务程序能够自动完成注册,并对外提供服务。

谢谢。




1条回答
  • 2021-05-31 11:52

    无法实现,如果有需要可以给nacos官方发issue

    0 讨论(0)
提交回复