Nacos原生sdk入门操作

读取server上的配置

我这里图省事,直接写到启动类run方法里面了, 实际工作中你们需要写到Listener里面

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.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import java.util.Properties;
import java.util.concurrent.Executor;

@SpringBootApplication
public class NacosDemoApplication {

    // 原生sdk读取配置文件的值,我这里图省事,直接写到启动类run方法里面了, 实际工作中你们需要写到Listener里面

    public static void main(String[] args) {
        SpringApplication.run(NacosDemoApplication.class, args);

        String serverAddr="zjj101:8848";  //连接到目标服务的地址
        String dataId="example"; //指定dataid、 groupid
        String groupId="DEFAULT_GROUP";
        Properties properties=new Properties();
        properties.put("serverAddr",serverAddr);
        try {
            //ConfigService-> NacosConfigService
            ConfigService configService= NacosFactory.createConfigService(properties);
            /**
             * 参数3 ,客户端和服务端连接的超时时间
             */
            String content=configService.getConfig(dataId,groupId,3000);
            System.out.println(content);
            configService.addListener(dataId, groupId, new Listener() {
                @Override
                public Executor getExecutor() {
                    return null;
                }

                /**
                 * 如果Nacos节点发生变化的话就会触发这个回调.
                 * @param configInfo
                 */
                @Override
                public void receiveConfigInfo(String configInfo) {
                    System.out.println("触发回调了");
                    System.out.println(configInfo);

                }
            });
        } catch (NacosException e) {
            e.printStackTrace();
        }

    }

}

一启动项目的时候,就会读取nacos-server上面的值

Nacos原生sdk入门操作

启动项目之后就会读到
Nacos原生sdk入门操作

多个配置是用\r\n 分开的

Nacos原生sdk入门操作
修改新的值之后,点击发布,就会触发回调 receiveConfigInfo 方法就会被执行到 ,就会立马输出新的值, 输出的结果是String类型的,多个值之间还是用\r\n 分开的

发布配置

public static void main(String[] args) throws NacosException, InterruptedException {

    String serverAddr = "zjj101:8848";
    String dataId = "nacos-config-demo.yaml";
    String group = "DEFAULT_GROUP";
    Properties properties = new Properties();
    properties.put(PropertyKeyConst.SERVER_ADDR, serverAddr);

    //获取配置中心服务
    ConfigService configService = NacosFactory.createConfigService(properties);

    //发布配置
    boolean isPublishOk = configService.publishConfig(dataId, group, "content");

}

执行完了之后,发现nacos服务多了个配置
Nacos原生sdk入门操作
Nacos原生sdk入门操作

删除配置

    public static void main(String[] args) throws NacosException, InterruptedException {

        String serverAddr = "zjj101:8848";
        String dataId = "nacos-config-demo.yaml";
        String group = "DEFAULT_GROUP";
        Properties properties = new Properties();
        properties.put(PropertyKeyConst.SERVER_ADDR, serverAddr);
        
        //获取配置中心服务
        ConfigService configService = NacosFactory.createConfigService(properties);

        boolean isRemoveOk = configService.removeConfig(dataId, group);
        System.out.println(isRemoveOk);

    }

执行代码之前,发现有这个配置,
Nacos原生sdk入门操作

执行代码之后,发现配置已经被删除了.
Nacos原生sdk入门操作

发布配置

 String serverAddr = "zjj101:8848";
        String dataId = "nacos-config-demo.yaml";
        String group = "DEFAULT_GROUP";
        Properties properties = new Properties();
        properties.put(PropertyKeyConst.SERVER_ADDR, serverAddr);
        
        //获取配置中心服务
        ConfigService configService = NacosFactory.createConfigService(properties);
        
        //从配置中心拉取配置
        String content = configService.getConfig(dataId, group, 5000);
        System.out.println(content);

        //发布配置
        boolean isPublishOk = configService.publishConfig(dataId, group, "content");
        //System.out.println(isPublishOk);
        //发送properties格式
        configService.publishConfig(dataId,group,"common.age=30", ConfigType.PROPERTIES.getType());
上一篇:ART-Pi Smart SDK体验(运行环境:100ASK-IMX6ULL-PRO)


下一篇:飞行机器人(一)DJI平台OSDK简介