近期负责整改项目,让nacos只做服务注册和发现,不再做配置管理。踩了一个坑,记录一下:
现象:
服务的bootstrap文件或application文件中配置了nacos远程地址,但服务启动后一直连接localhost:8848
原因:
nacos的连接信息有两个配置:服务发现依靠:
spring:
cloud:
nacos:
discovery:
server-addr: ip:端口号
配置管理是在:
spring:
cloud:
nacos:
config:
server-addr: ip:端口号
服务注册时,是靠配置管理,即
spring.cloud.nacos.config.server-addr
,而不是
spring.cloud.nacos.discovery
,我一直记得discovery既是服务注册,也是服务发现。所以在nacos不再做配置管理后,我就直接删掉了spring.cloud.nacos.config.server-addr,导致没了服务注册地址,默认用了localhost
解决:
加回spring.cloud.nacos.config.server-addr
其他可能原因:
- 检查拼写,字母顺序错乱一般注意不到,拼写错误了也相当于没配置
- 一般项目中有多个bootstrap文件,注意spring.profiles.active后面,生效的是哪个文件