前言

nacos配置中心的配置更新了,程序里却没有获取到最新的配置。

程序不用重启就自动刷新的方法

前置条件

# 开启监听和自动刷新,动态感知配置变化,默认值:true
spring.cloud.nacos.config.refresh-enabled=true

  1. bean上有注解@NacosRefresh,则会自动刷新
  2. 使用了@Component注解,则会自动刷新
  3. 如果都没有效果,bean上加 @RefreshScope注解,配置文件中配置refresh: true,一定会生效

扩展配置文件

下面这种扩展配置文件修改后代码里肯定不生效

spring:
  cloud:
    nacos:
      config:
        file-extension: yml
        server-addr:
        namespace:
        group: DEFAULT_GROUP
        # 注意下面这行配置
        extension-configs: base.yml,mysqlMaster.yaml
        refresh-enabled: true

配置成这种就生效了

spring:
  cloud:
    nacos:
      config:
        file-extension: yml
        server-addr:
        namespace:
        group: DEFAULT_GROUP
        # 注意下面这行配置
        extension-configs:
          - data-id: base.yml
            refresh: true
          - data-id: mysqlMaster.yaml
            refresh: true
        refresh-enabled: true

以微服务命名的配置文件如商品微服务product-dev.yml

这种自行百度,大把解决方案。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐