记整合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文件内
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 提示词工程——AI应用必不可少的技术
· 地球OL攻略 —— 某应届生求职总结
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界