springcloud 为啥增加bootstrap context的意义
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springcloud 为啥增加bootstrap context的意义相关的知识,希望对你有一定的参考价值。
参考技术A Spring云应用程序bootstrap context进行操作(bootstrap context是主应用程序的父上下文)。bootstrap context负责从外部源加载配置属性,并解密本地外部配置文件中的属性。这两个上下文共享一个环境,该环境是任何Spring应用程序外部属性的来源。默认情况下,bootstrap属性(不是bootstrap.properties而是引导阶段加载的属性)具有较高的优先级,因此不能被本地配置覆盖。SpringCloudAlibaba项目配置迁移Nacos通过bootstrap.yml启动
参考技术A 我们要把本地的 application.yml 文件放到远程配置中心Nacos中,主要思想就是利用 bootstrap.yml 的优先加载,来指定配置文件的地址。由于我们使用的SpringCloud框架,会覆盖SpringBoot对 bootstrap.yml 的优先加载,需要引入下面的依赖来解决。
./resources 目录下增加 bootstrap.yml
Nacos中增加配置
这时候你会看到你的控制台疯狂输出ClientWorker日志
网上查原因说是NacosServer和客户端使用的nacos-client版本不一致导致的,比较内容是否发生变化是比较config的md5值,如果版本不一样,有可能盐值不一样导致md5值不同,进而导致疯狂同步信息。我们的server使用的是2.0.2而client使用的是1.4.5。
解决办法:
1.上调log级别,眼不见为净,掩耳盗铃。
2.调整nacos版本一致。
3.git社区的解决方案,默认命名空间去掉配置public,也就是使用public空间的时候,不要配置namespace:public。原理还不太清楚,不过解决问题了。参考: https://github.com/alibaba/nacos/issues/3525
以上是关于springcloud 为啥增加bootstrap context的意义的主要内容,如果未能解决你的问题,请参考以下文章
SpringCloudAlibaba项目配置迁移Nacos通过bootstrap.yml启动
SpringCloud + Zookeeper + Feign整合及Feign原理
为啥nginx环境下bootstrap中font-awesome图标显示不出来