nacos之配置文件实时刷新

nacos之配置文件实时刷新

当初为了解决nacos配置文件实时刷新问题,搜索了很多资料,仍无效,最后不经意间的尝试却解决了这个问题。

我的SpringCloud版本为:Hoxton.SR4;

我的SpringCloud Alibaba版本为:2.2.1.RELEASE;

我的Nacos版本为:1.3.1。
 

一、核心配置文件(一定要是bootstrap.yml,而非application.yml)

复制代码

cloud:
  nacos:
    discovery:
      # 服务注册地址
      server-addr: 127.0.0.1:8848
    config:
      # 配置中心地址
      server-addr: 127.0.0.1:8848
      # 配置文件格式
      file-extension: yml
      # 共享配置
      shared-dataids: application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension},job.yml,test.properties
      refresh-enabled: true
      refreshable-dataids: job.yml,test.properties

复制代码

上面是完整的,最关键的是如下两行:

refresh-enabled: true
refreshable-dataids: job.yml,test.properties

二、读取配置文件的类上,需加上@RefreshScope注解

复制代码

@Component
@RefreshScope
@RestController
public class TestConfigJob {


    @Value("${job.live.cron}")
    private String val;

    @Autowired
    private Environment env;

    @Autowired
    private EqicsSaasApiProperties eqicsSaasApi;

    @Scheduled(cron = "1 * * * * ?")
    public void test() {
        System.out.println(DateUtil.date() + " val:" + val);

        System.out.println("api_url:" + eqicsSaasApi.getApiUrl());
    }

    @GetMapping("/getConfig")
    public String getConfig() {

        Map<String, Object> returnMap = new HashMap<>();
        returnMap.put("val", val);
        return JSONUtil.parse(returnMap).toString();

    }
}

复制代码

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Nacos配置中心提供了自动刷新配置的功能。当配置中心的配置发生变化时,Nacos会自动通知客户端更新配置。以下是实现自动刷新配置的步骤: 1. 引入Nacos客户端依赖:在项目的`pom.xml`文件中添加Nacos客户端的依赖。 2. 配置Nacos连接信息:在项目的配置文件中配置Nacos连接信息,包括Nacos服务器地址、命名空间、组等。 3. 注册配置监听器:通过在应用程序中注册配置监听器,可以监听配置的变化。 4. 处理配置变化:当配置发生变化时,Nacos会通知客户端,客户端可以在监听器中处理配置的变化。 下面是一个示例代码,展示了如何使用Nacos自动刷新配置: ```java import com.alibaba.nacos.api.config.listener.ConfigListener; import com.alibaba.nacos.api.config.ConfigService; public class NacosConfigRefreshExample { public static void main(String[] args) throws Exception { // 1. 引入Nacos客户端依赖 // ... // 2. 配置Nacos连接信息 String serverAddr = "localhost:8848"; String namespace = "your_namespace"; String group = "your_group"; String dataId = "your_data_id"; // 3. 注册配置监听器 ConfigService configService = NacosFactory.createConfigService(serverAddr, namespace); configService.addListener(dataId, group, new ConfigListener() { @Override public void receiveConfigInfo(String configInfo) { // 4. 处理配置变化 System.out.println("Received updated config: " + configInfo); // 处理配置变化的逻辑 } }); // 阻塞主线程,保持程序运行 Thread.sleep(Long.MAX_VALUE); } } ``` 通过以上步骤,你可以在应用程序中实现Nacos配置中心的自动刷新功能。当Nacos配置发生变化时,客户端会收到通知,并在监听器中处理配置的变化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

万事俱备,就差一个程序员了

谢谢您,赏俺根辣条,尝尝鲜.谢

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值