简介
事情是这样的,为一个项目配置了注册中心nacos,一开始配置的是本机的nacos服务,后面将nacos地址改为虚拟机后,项目虽然启动成功,但是报nacos异常,如下:
一共有两个配置文件:
配置了如下配置:
可以看到根本没有关于localhost:8848的配置,但是还是 报了localhost:8848的异常,打开虚拟机的nacos可视化界面,发现服务已经注册到虚拟机的nacos中了
出现问题的版本为:
<!-- 注册中心-nacos-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>2021.1</version>
</dependency>
<!-- 配置中心-nacos -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>2021.1</version>
</dependency>
解决办法
这是nacos读取本身自动配置的优先级高于application文件中的配置时引起的,而nacos本身的自动配置是127.0.0.1:8848端口的nacos服务,所以发生了以上异常,故而需要将配置文件的优先级提升
创建一个bootstrap.properties或bootstrap.yml文件配置nacos地址就可以了。这个配置是系统级的,优先级最高,先从这个文件读取nacos地址就不会报错了
最后加上注册中心的配置
spring.cloud.nacos.server-addr=192.168.190.128:8848