记整合Nacos踩过的坑

原始版本

		<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>

升级后的版本

		<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从新导入进来就会生效了。

 <!-- 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 @ 2023-08-09 14:27  打工人小余  阅读(58)  评论(0编辑  收藏  举报