记整合Nacos踩过的坑

原始版本

1
2
3
<spring-boot.version>2.3.12.RELEASE</spring-boot.version>
<spring-cloud.version>Hoxton.SR12</spring-cloud.version>
<spring-cloud-alibaba.version>2.2.8.RELEASE</spring-cloud-alibaba.version>

升级后的版本

1
2
3
<spring-boot.version>2.6.11</spring-boot.version>
<spring-cloud.version>2021.0.4</spring-cloud.version>
<spring-cloud-alibaba.version>2021.0.4.0</spring-cloud-alibaba.version>

问题:按照官方文档的步骤无法动态刷新配置

1、本来以为是nacos版本不对,在git上找到一张版本对应图

 于是把nacos服务端更新为2.0.4版本,结论:无效果
2、去到官方给的nacos示例代码查看配置文件,发现是写在bootstrap.properties配置内的,忽然想起来bootstrap.properties或者bootstrap.yml文件都是先于application.yaml文件加载的,我把配置写到了application.yaml文件内了;
  于是我把对应的配置移到bootstrap.yml文件内,程序启动报错

 上网找了一下原因:

产生问题的原因是bootstrap.properties比application.properties的优先级要高
由于bootstrap.properties是系统级的资源配置文件,是用在程序引导执行时更加早期配置信息读取;
而application.properties是用户级的资源配置文件,是用来后续的一些配置所需要的公共参数。
但是在SpringCloud 2020.* 版本把bootstrap禁用了,导致在读取文件的时候读取不到而报错,所以我们只要把bootstrap从新导入进来就会生效了。

1
2
3
4
5
6
<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-bootstrap -->
       <dependency>
           <groupId>org.springframework.cloud</groupId>
           <artifactId>spring-cloud-starter-bootstrap</artifactId>
           <version>3.0.3</version>
       </dependency>

  问题得以解决

结论:
1、启用bootstrap
2、配置中心配置信息写到bootstrap.yml或者bootstrap.properties文件内

posted @   打工人小余  阅读(90)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 提示词工程——AI应用必不可少的技术
· 地球OL攻略 —— 某应届生求职总结
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界
点击右上角即可分享
微信分享提示