nacos 配置中心不能动态刷新的问题,nacos 平台改了,控制台能打印出来最新的,但是调数据就还是旧的

传统的解决方案:

(1)记得加自动刷新注解:@RefreshScope

(2)springboot , springcloud, nacos 的版本要统一,比如 2.0.x 的,尽量都要 2.0.x;2.1.x 的,就都要 2.1.x

(3)nacos 配置:

复制代码
cloud:
    nacos:
      server-addr: 127.0.0.1:8848
      #注册中心配置
      discovery:
        namespace: xxxx
      #配置中心配置
      config:
        file-extension: yaml    #这里写 yml 还是 yaml ,取决于 nacos 配置中心里面配置列表定义的 data id 后缀是什么就是什么
        namespace: xxxx
        refresh-enabled: true
        auto-refresh: true
        enable-remote-sync-config: true
        #扩展配置
        extension-configs:
        - data-id: xxxx.properties
          refresh: true
复制代码

将刷新都加上: 

refresh-enabled: true
auto-refresh: true
enable-remote-sync-config: true

(4)最后一种方法,也是自己经过网上各种解决方法都解决不了,足足卡了两天后终于解决了的方法:

就是如果你的项目里面做了数据库密码加密,一般会引入一个 maven 依赖:

<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>2.1.2</version>
</dependency>

这个用于加解密的,哪怕你自己的 nacos 没有使用加解密,但是只要你的数据库密码有用了,这个东西也会影响,导致 nacos 无法自动刷新,从而在控制台报一个错:

[notify-error] dataId=xxx  …… placeholder 'project.version' in value &quot;${project.version}

就是这个导致 nacos 的配置无法刷新到本地,所以解决方法,还是把这个版本号,改成和你的大部队版本一直,比如你用的整体版本是 2.0.x 的,这个就降级为 2.0.x ,如果是高的,就是升高,就可以了。

 ===========================

额外知识:

nacos 默认是集群方式启动的,首次操作一般我们都是单机启动,启动命令不能直接到 bin 目录执行:./startup.sh,而是需要这样写:

(1)./startup.sh -m standalone

(2)不想每次启动命令都这么写,可以直接 vi 打开 startup.sh 文件,找到 : export MODE="cluster" ,将这行注释,然后在其下面添加  export MODE="standalone" 保存即可,启动命令:nohup sh startup.sh &

 
posted @   雪化山河  阅读(5431)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示