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恢复后,服务程序能够自动完成注册,并对外提供服务。
谢谢。
扫一扫访问 Blade技术社区 移动端