本地服务注册远程nacos遇到的坑,浏览器可以访问nacos控制页面,但本地服务无法注册

您所在的位置:网站首页 Nacos报错namingService 本地服务注册远程nacos遇到的坑,浏览器可以访问nacos控制页面,但本地服务无法注册

本地服务注册远程nacos遇到的坑,浏览器可以访问nacos控制页面,但本地服务无法注册

2024-01-17 11:14| 来源: 网络整理| 查看: 265

我是将nacos部署到服务器上,然后将本地服务往远程nacos上注册,本地服务配置如下:

spring: application: name: gateway1 profiles: active: dev cloud: nacos: config: server-addr: 远程IP:8848 file-extension: yml

启动本地服务的时候老是报错,但是我之前nacos服务中心在本地启动这样配置就没有问题:

2020-11-11 15:55:54.719 ERROR 6824 --- [ main] com.alibaba.nacos.client.naming : [NA] failed to request java.net.ConnectException: Connection refused: connect at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method) ~[na:1.8.0_101] at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85) ~[na:1.8.0_101] at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) ~[na:1.8.0_101] at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) ~[na:1.8.0_101] at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) ~[na:1.8.0_101] at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172) ~[na:1.8.0_101] at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) ~[na:1.8.0_101] at java.net.Socket.connect(Socket.java:589) ~[na:1.8.0_101] at sun.net.NetworkClient.doConnect(NetworkClient.java:175) ~[na:1.8.0_101] at sun.net.www.http.HttpClient.openServer(HttpClient.java:432) ~[na:1.8.0_101] at sun.net.www.http.HttpClient.openServer(HttpClient.java:527) ~[na:1.8.0_101] at sun.net.www.http.HttpClient.(HttpClient.java:211) ~[na:1.8.0_101] at sun.net.www.http.HttpClient.New(HttpClient.java:308) ~[na:1.8.0_101] at sun.net.www.http.HttpClient.New(HttpClient.java:326) ~[na:1.8.0_101] at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1169) ~[na:1.8.0_101] at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1105) ~[na:1.8.0_101] at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:999) ~[na:1.8.0_101] at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:933) ~[na:1.8.0_101] at com.alibaba.nacos.common.http.client.request.JdkHttpClientRequest.execute(JdkHttpClientRequest.java:109) ~[nacos-common-1.3.3.jar:na] at com.alibaba.nacos.common.http.client.NacosRestTemplate.execute(NacosRestTemplate.java:482) ~[nacos-common-1.3.3.jar:na] at com.alibaba.nacos.common.http.client.NacosRestTemplate.exchangeForm(NacosRestTemplate.java:427) ~[nacos-common-1.3.3.jar:na] at com.alibaba.nacos.client.naming.net.NamingProxy.callServer(NamingProxy.java:599) [nacos-client-1.3.3.jar:na] at com.alibaba.nacos.client.naming.net.NamingProxy.reqApi(NamingProxy.java:524) [nacos-client-1.3.3.jar:na] at com.alibaba.nacos.client.naming.net.NamingProxy.reqApi(NamingProxy.java:491) [nacos-client-1.3.3.jar:na] at com.alibaba.nacos.client.naming.net.NamingProxy.reqApi(NamingProxy.java:486) [nacos-client-1.3.3.jar:na] at com.alibaba.nacos.client.naming.net.NamingProxy.queryList(NamingProxy.java:400) [nacos-client-1.3.3.jar:na] at com.alibaba.nacos.client.naming.core.HostReactor.updateService(HostReactor.java:339) [nacos-client-1.3.3.jar:na] at com.alibaba.nacos.client.naming.core.HostReactor.updateServiceNow(HostReactor.java:302) [nacos-client-1.3.3.jar:na] at com.alibaba.nacos.client.naming.core.HostReactor.getServiceInfo(HostReactor.java:277) [nacos-client-1.3.3.jar:na] at com.alibaba.nacos.client.naming.NacosNamingService.subscribe(NacosNamingService.java:446) [nacos-client-1.3.3.jar:na] at com.alibaba.cloud.nacos.discovery.NacosWatch.start(NacosWatch.java:124) [spring-cloud-starter-alibaba-nacos-discovery-2.2.3.RELEASE.jar:2.2.3.RELEASE] at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:182) [spring-context-5.2.8.RELEASE.jar:5.2.8.RELEASE] at org.springframework.context.support.DefaultLifecycleProcessor.access$200(DefaultLifecycleProcessor.java:53) [spring-context-5.2.8.RELEASE.jar:5.2.8.RELEASE] at org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.start(DefaultLifecycleProcessor.java:360) [spring-context-5.2.8.RELEASE.jar:5.2.8.RELEASE] at org.springframework.context.support.DefaultLifecycleProcessor.startBeans(DefaultLifecycleProcessor.java:158) [spring-context-5.2.8.RELEASE.jar:5.2.8.RELEASE] at org.springframework.context.support.DefaultLifecycleProcessor.onRefresh(DefaultLifecycleProcessor.java:122) [spring-context-5.2.8.RELEASE.jar:5.2.8.RELEASE] at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:895) [spring-context-5.2.8.RELEASE.jar:5.2.8.RELEASE] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:554) [spring-context-5.2.8.RELEASE.jar:5.2.8.RELEASE] at org.springframework.boot.web.reactive.context.ReactiveWebServerApplicationContext.refresh(ReactiveWebServerApplicationContext.java:62) [spring-boot-2.3.2.RELEASE.jar:2.3.2.RELEASE] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:758) [spring-boot-2.3.2.RELEASE.jar:2.3.2.RELEASE] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:750) [spring-boot-2.3.2.RELEASE.jar:2.3.2.RELEASE] at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397) [spring-boot-2.3.2.RELEASE.jar:2.3.2.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) [spring-boot-2.3.2.RELEASE.jar:2.3.2.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1237) [spring-boot-2.3.2.RELEASE.jar:2.3.2.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226) [spring-boot-2.3.2.RELEASE.jar:2.3.2.RELEASE] at com.peas.gateway.GatewayApplication.main(GatewayApplication.java:12) [classes/:na]

网上查了N久无果,然后看到一篇文章写的是在application.properties中配置需要写成: spring.cloud.nacos.discovery.server-addr=xxx.xxx.xxx.xxx:8848 而在bootstrap.properties中需要写成: spring.cloud.nacos.config.server-addr=xxx.xxx.xxx.xxx:8848 但我看我的配置是这样写的没错啊,突然想着把discovery也配置上试试,没想到还真让我给蒙到了:

spring: application: name: gateway1 profiles: active: dev cloud: nacos: config: server-addr: 远程IP:8848 file-extension: yml discovery: server-addr: 远程IP:8848

启动,OK啦~~~ 然后我想,如果把config下的server-addr注释掉应该也可以吧,so:

spring: application: name: gateway1 profiles: active: dev cloud: nacos: config: # server-addr: 远程IP:8848 file-extension: yml discovery: server-addr: 远程IP:8848

再启动,然鹅············

java.net.ConnectException: no available server at com.alibaba.nacos.client.config.http.ServerHttpAgent.httpGet(ServerHttpAgent.java:133) ~[nacos-client-1.3.3.jar:na] at com.alibaba.nacos.client.config.http.MetricsHttpAgent.httpGet(MetricsHttpAgent.java:51) ~[nacos-client-1.3.3.jar:na] at com.alibaba.nacos.client.config.impl.ClientWorker.getServerConfig(ClientWorker.java:298) ~[nacos-client-1.3.3.jar:na] at com.alibaba.nacos.client.config.NacosConfigService.getConfigInner(NacosConfigService.java:149) [nacos-client-1.3.3.jar:na] at com.alibaba.nacos.client.config.NacosConfigService.getConfig(NacosConfigService.java:97) [nacos-client-1.3.3.jar:na] at com.alibaba.cloud.nacos.client.NacosPropertySourceBuilder.loadNacosData(NacosPropertySourceBuilder.java:85) [spring-cloud-starter-alibaba-nacos-config-2.2.3.RELEASE.jar:2.2.3.RELEASE] at com.alibaba.cloud.nacos.client.NacosPropertySourceBuilder.build(NacosPropertySourceBuilder.java:74) [spring-cloud-starter-alibaba-nacos-config-2.2.3.RELEASE.jar:2.2.3.RELEASE] at com.alibaba.cloud.nacos.client.NacosPropertySourceLocator.loadNacosPropertySource(NacosPropertySourceLocator.java:204) [spring-cloud-starter-alibaba-nacos-config-2.2.3.RELEASE.jar:2.2.3.RELEASE] at com.alibaba.cloud.nacos.client.NacosPropertySourceLocator.loadNacosDataIfPresent(NacosPropertySourceLocator.java:191) [spring-cloud-starter-alibaba-nacos-config-2.2.3.RELEASE.jar:2.2.3.RELEASE] at com.alibaba.cloud.nacos.client.NacosPropertySourceLocator.loadApplicationConfiguration(NacosPropertySourceLocator.java:142) [spring-cloud-starter-alibaba-nacos-config-2.2.3.RELEASE.jar:2.2.3.RELEASE] at com.alibaba.cloud.nacos.client.NacosPropertySourceLocator.locate(NacosPropertySourceLocator.java:103) [spring-cloud-starter-alibaba-nacos-config-2.2.3.RELEASE.jar:2.2.3.RELEASE] at org.springframework.cloud.bootstrap.config.PropertySourceLocator.locateCollection(PropertySourceLocator.java:52) [spring-cloud-context-2.2.3.RELEASE.jar:2.2.3.RELEASE] at org.springframework.cloud.bootstrap.config.PropertySourceLocator.locateCollection(PropertySourceLocator.java:47) [spring-cloud-context-2.2.3.RELEASE.jar:2.2.3.RELEASE] at org.springframework.cloud.bootstrap.config.PropertySourceBootstrapConfiguration.initialize(PropertySourceBootstrapConfiguration.java:98) [spring-cloud-context-2.2.3.RELEASE.jar:2.2.3.RELEASE] at org.springframework.boot.SpringApplication.applyInitializers(SpringApplication.java:626) [spring-boot-2.3.2.RELEASE.jar:2.3.2.RELEASE] at org.springframework.boot.SpringApplication.prepareContext(SpringApplication.java:370) [spring-boot-2.3.2.RELEASE.jar:2.3.2.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java:314) [spring-boot-2.3.2.RELEASE.jar:2.3.2.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1237) [spring-boot-2.3.2.RELEASE.jar:2.3.2.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226) [spring-boot-2.3.2.RELEASE.jar:2.3.2.RELEASE] at com.peas.gateway.GatewayApplication.main(GatewayApplication.java:12) [classes/:na]

直接就报错了,找不到注册服务器,分析下两个单词的意思,就是一个是注册用的,一个是摘取配置信息用的,两个的默认值都是localhost:8848,如果nacos是部署在远程服务器上,本地只配置config就相当于只能拉取配置文件,不能注册,如果只配置discovery,那config就是默认值,服务就只能注册,不能拉取配置文件,如果配置文件中有启动服务必须的配置,那就没办法获取,也就没办法启动项目!

以下是原码中设置默认值: 在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3