ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Nacos原生sdk入门操作

2022-01-15 19:34:13  阅读:192  来源: 互联网

标签:dataId String configService Nacos nacos serverAddr sdk properties 入门


读取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上面的值

image.png

启动项目之后就会读到
image.png

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

image.png
修改新的值之后,点击发布,就会触发回调 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服务多了个配置
image.png
image.png

删除配置

    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);

    }

执行代码之前,发现有这个配置,
image.png

执行代码之后,发现配置已经被删除了.
image.png

发布配置

 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());

标签:dataId,String,configService,Nacos,nacos,serverAddr,sdk,properties,入门
来源: https://blog.csdn.net/qq_41489540/article/details/122514547

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有