关于springcloud集成nacos遇到的问题
目录
- springcloud集成nacos遇到的问题
- 1.获取不到配置文件信息
- 2.springcloud 服务注册不上服务列表
- springcloud无法注册Nacos
- 这是官方推荐一起使用的版本
- 赶紧去pom中改成2.2.1.RELEASE,加载后重新运行
springcloud集成nacos遇到的问题
1.获取不到配置文件信息
有时候新建了配置文件后浏览器访问发现获取不到里面的值,原来springcloud对应的nacos配置中心配置Data ID是需要加后缀名的
在 Nacos Spring Cloud 中,dataId 的完整格式如下:
${prefix}-${spring.profile.active}.${file-extension}
prefix
默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置。spring.profile.active
即为当前环境对应的 profile,详情可以参考 Spring Boot文档。 注意:当 spring.profile.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 ${prefix}.${file-extension}file-exetension
为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 properties 和 yaml 类型。
比如我项目的配置是这样的,如果少了.properties是获取不到配置值的
2.springcloud 服务注册不上服务列表
启动springcloud的时候没有报错,但是去nacos控制台服务列表并没有看到服务,启动控制台也没有打印输出注册信息。
后面发现是springcloud和springboot 对应的版本问题,现在新建的项目springboot parent的版本都是2.1.x以上版本,这个时候springcloud 对应的版本也要跟上使用Greenwich对应的版本
springcloud和springboot对应的版本
Spring Cloud Spring Boot Angel版本 兼容Spring Boot 1.2.x Brixton版本 兼容Spring Boot 1.3.x,也兼容Spring Boot 1.4.x Camden版本 兼容Spring Boot 1.4.x,也兼容Spring Boot 1.5.x Dalston版本、Edgware版本 兼容Spring Boot 1.5.x,不兼容Spring Boot 2.0.x Finchley版本 兼容Spring Boot 2.0.x,不兼容Spring Boot 1.5.x Greenwich版本 兼容Spring Boot 2.1.x 及以上版本
springcloud无法注册Nacos
早就听说了阿里爸爸的Nacos特别厉害,一直想尝试但苦于没有机会。今天终于有机会尝试一下传说中的Nacos了,非常兴奋。
写个小demo准备感受Nacos作为注册中心的强大之处,程序倒是跑起来了,正当我感叹Nacos的强大之时问题也随之出现:
咦?我的module去哪了?
返回后台一看:
好家伙,连个Nacos的影都没有!!!
为什么注册不成功呢?同时我也发现了yml配置文件中也出现了问题:
配置属性不能解析又是什么鬼?
这一连串的问题也是困扰了我很长时间,在查阅了很多资料之后也是百思不得其解。正当我自暴自弃之时,突然想起来Ali哥的一句话:为什么不去看看神奇的官方文档呢?
果然,Ali哥说的有道理,在看了官方文档后,我悟了!
我用的springboot版本是2.2.2,springcloud版本是Hoxton.SR1,springcloud alibaba是2.1.0.RELEASE
nacos是1.2.1
这是官方推荐一起使用的版本
果然!是我的版本搞错了,我的springcloud alibaba的版本太低了!!!
赶紧去pom中改成2.2.1.RELEASE,加载后重新运行
运行成功!!
在前台module也确实出现了:
问题解决!
做大型项目尤其要注意各种依赖之间的版本问题啊,而且有时问题实在得不到解决不妨去查查官方文档,文档里往往蕴藏着最好的答案。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。