暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Nacos Java SDK(获取配置addListener)

安全链 2021-08-21
1268

POM文件

在POM中增加如下依赖


<dependency>
    <groupId>com.alibaba.nacos</groupId>
    <artifactId>nacos-client</artifactId>
    <version>1.4.1</version>
</dependency>


监听配置

如果希望 Nacos 推送配置变更,可以使用 Nacos 动态监听配置接口来实现


package com.SCND.Controller;

import com.alibaba.nacos.api.NacosFactory;
import com.alibaba.nacos.api.config.ConfigService;
import com.alibaba.nacos.api.config.listener.Listener;
import com.alibaba.nacos.api.exception.NacosException;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Properties;
import java.util.concurrent.Executor;

@RestController
public class AddListener {

    @GetMapping("/addListener")
    public String testListener() throws NacosException {
        addListener("example.properties","DEFAULT_GROUP",print());
        return "testListener is ok....!";
    }

    public Listener print(){
        System.out.println("callback++++++++++");
        return null;
    }

    public void addListener(String dataId, String group, Listener listener) throws NacosException {

        String serverAddr = "127.0.0.1:8848";
        dataId = "example.properties";
        group = "DEFAULT_GROUP";
        int timeoutMs = 5000;
        Properties properties = new Properties();
        properties.put("serverAddr", serverAddr);
        ConfigService configService = NacosFactory.createConfigService(properties);
        String content = configService.getConfig(dataId, group, timeoutMs);
        System.out.println(content);
        configService.addListener(dataId, group, new Listener() {
            @Override
            public void receiveConfigInfo(String configInfo) {
                System.out.println("recieve:" + configInfo);
            }
            @Override
            public Executor getExecutor() {
                return null;
            }
        });
// 测试让主线程不退出,因为订阅配置是守护线程,主线程退出守护线程就会退出。正式代码中无需下面代码
/* while (true) {
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }*/

    }
}


图1  Nacos修改配置


图2  浏览器访问监听接口


图3  控制台显示调用结果




链接:https://pan.baidu.com/s/13k_ek_WrzcB1dxXEFwsRtQ
提取码:2zfv




文章转载自安全链,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论