• 云原生之nacos 配置SDK解读


    概述部分

    Maven 坐标

    1. <dependency>
    2. <groupId>com.alibaba.nacosgroupId>
    3. <artifactId>nacos-clientartifactId>
    4. <version>${version}version>
    5. dependency>

    1.X 版本最新java SDK为 1.4.4版本 

    配置管理 

    获取配置

    描述

    用于服务启动的时候从 Nacos 获取配置

    public String getConfig(String dataId, String group, long timeoutMs) throws NacosException

    请求参数 

    参数名参数类型描述
    dataIdstring配置 ID,采用类似 package.class(如com.taobao.tc.refund.log.level)的命名规则保证全局唯一性,class 部分建议是配置的业务含义。全部字符小写。只允许英文字符和 4 种特殊字符("."、":"、"-"、"_"),不超过 256 字节。
    groupstring配置分组,建议填写产品名:模块名(Nacos:Test)保证唯一性,只允许英文字符和4种特殊字符("."、":"、"-"、"_"),不超过128字节。
    timeoutlong读取配置超时时间,单位 ms,推荐值 3000。

    返回值

    参数类型描述
    string配置值

     请求示例

    1. try {
    2. String serverAddr = "{serverAddr}";
    3. String dataId = "{dataId}";
    4. String group = "{group}";
    5. Properties properties = new Properties();
    6. properties.put("serverAddr", serverAddr);
    7. ConfigService configService = NacosFactory.createConfigService(properties);
    8. String content = configService.getConfig(dataId, group, 5000);
    9. System.out.println(content);
    10. } catch (NacosException e) {
    11. // TODO Auto-generated catch block
    12. e.printStackTrace();
    13. }

    异常说明

    读取配置超时或网络异常,抛出 NacosException 异常。

    监听配置

    描述

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

    public void addListener(String dataId, String group, Listener listener) 

    请求参数

    参数名

    参数类型

    描述

    dataId

    string

    配置 ID,采用类似 package.class(如com.taobao.tc.refund.log.level)的命名规则保证全局唯一性,class 部分建议是配置的业务含义。 全部字符小写。只允许英文字符和 4 种特殊字符("."、":"、"-"、"_")。不超过 256 字节。

    group

    string

    配置分组,建议填写产品名:模块名(如 Nacos:Test)保证唯一性。 只允许英文字符和4种特殊字符("."、":"、"-"、"_"),不超过128字节。

    listener

    Listener

    监听器,配置变更进入监听器的回调函数。

    返回值

    参数类型描述
    string配置值,初始化或者配置变更的时候通过回调函数返回该值。

    请求示例

    1. String serverAddr = "{serverAddr}";
    2. String dataId = "{dataId}";
    3. String group = "{group}";
    4. Properties properties = new Properties();
    5. properties.put("serverAddr", serverAddr);
    6. ConfigService configService = NacosFactory.createConfigService(properties);
    7. String content = configService.getConfig(dataId, group, 5000);
    8. System.out.println(content);
    9. configService.addListener(dataId, group, new Listener() {
    10. @Override
    11. public void receiveConfigInfo(String configInfo) {
    12. System.out.println("recieve1:" + configInfo);
    13. }
    14. @Override
    15. public Executor getExecutor() {
    16. return null;
    17. }
    18. });
    19. // 测试让主线程不退出,因为订阅配置是守护线程,主线程退出守护线程就会退出。 正式代码中无需下面代码
    20. while (true) {
    21. try {
    22. Thread.sleep(1000);
    23. } catch (InterruptedException e) {
    24. e.printStackTrace();
    25. }
    26. }

    删除监听

    描述

    取消监听配置,取消监听后配置不会再推送。

    请求参数

    参数名参数类型描述
    dataIdstring配置 ID,采用类似 package.class(如com.taobao.tc.refund.log.level)的命名规则保证全局唯一性,class 部分建议是配置的业务含义。全部字符小写。只允许英文字符和 4 种特殊字符("."、":"、"-"、"_"),不超过 256 字节。
    groupstring配置分组
    listenerConfigChangeListenerAdapter监听器,配置变更进入监听器的回调函数。

    使用示例

    1. String serverAddr = "{serverAddr}";
    2. String dataId = "{dataId}";
    3. String group = "{group}";
    4. Properties properties = new Properties();
    5. properties.put("serverAddr", serverAddr);
    6. ConfigService configService = NacosFactory.createConfigService(properties);
    7. configService.removeListener(dataId, group, yourListener);

    发布配置

    描述

    用于通过程序自动发布 Nacos 配置,以便通过自动化手段降低运维成本。

    注意:创建和修改配置时使用的同一个发布接口,当配置不存在时会创建配置,当配置已存在时会更新配置。

    1. public boolean publishConfig(String dataId, String group, String content) throws NacosException;
    2. @Since 1.4.1
    3. public boolean publishConfig(String dataId, String group, String content, String type) throws NacosException;

    请求参数

    参数名参数类型描述
    dataIdstring配置 ID,采用类似 package.class(如 com.taobao.tc.refund.log.level)的命名规则保证全局唯一性。建议根据配置的业务含义来定义 class 部分。全部字符均为小写。只允许英文字符和 4 种特殊字符(“.”、“:”、“-”、“_”),不超过 256 字节。
    groupstring配置分组,建议填写产品名:模块名(如 Nacos:Test)来保证唯一性。只允许英文字符和 4 种特殊字符(“.”、“:”、“-”、“_”),不超过 128 字节。
    contentstring配置内容,不超过 100K 字节。
    typestring@Since 1.4.1. 配置类型,见 com.alibaba.nacos.api.config.ConfigType,默认为TEXT

    返回参数

    参数类型描述
    boolean是否发布成功

     请求示例

    1. try {
    2. // 初始化配置服务,控制台通过示例代码自动获取下面参数
    3. String serverAddr = "{serverAddr}";
    4. String dataId = "{dataId}";
    5. String group = "{group}";
    6. Properties properties = new Properties();
    7. properties.put("serverAddr", serverAddr);
    8. ConfigService configService = NacosFactory.createConfigService(properties);
    9. boolean isPublishOk = configService.publishConfig(dataId, group, "content");
    10. System.out.println(isPublishOk);
    11. } catch (NacosException e) {
    12. // TODO Auto-generated catch block
    13. e.printStackTrace();
    14. }

    异常说明

    读取配置超时或网络异常,抛出 NacosException 异常。

    删除配置

    描述

    用于通过程序自动删除 Nacos 配置,以便通过自动化手段降低运维成本。

    注意: 当配置已存在时会删除该配置,当配置不存在时会直接返回成功消息。

    public boolean removeConfig(String dataId, String group) throws NacosException

    请求参数

    参数名参数类型描述
    dataIdstring配置 ID
    groupstring配置分组

    返回参数

    参数类型描述
    boolean是否删除成功

    请求示例

    1. try {
    2. // 初始化配置服务,控制台通过示例代码自动获取下面参数
    3. String serverAddr = "{serverAddr}";
    4. String dataId = "{dataId}";
    5. String group = "{group}";
    6. Properties properties = new Properties();
    7. properties.put("serverAddr", serverAddr);
    8. ConfigService configService = NacosFactory.createConfigService(properties);
    9. boolean isRemoveOk = configService.removeConfig(dataId, group);
    10. System.out.println(isRemoveOk);
    11. } catch (NacosException e) {
    12. // TODO Auto-generated catch block
    13. e.printStackTrace();
    14. }

    异常说明

    读取配置超时或网络异常,抛出 NacosException 异常。

  • 相关阅读:
    岛屿数量 -- 二维矩阵的dfs算法
    企业内部聊天软件Riot部署
    STK12与Python联合仿真(二):简单的例程
    elasticsearch高级篇:核心概念和实现原理
    13.1 使用DirectX9绘图引擎
    LINUX系统编程:基于环形队列和信号量的生产者消费者模型
    如何创建一个线程池,为什么不推荐使用Executors去创建呢?
    基于OneFlow实现Unfold、Fold算子
    Arcgis 数据操作
    Python 简单并发的代码记录
  • 原文地址:https://blog.csdn.net/m0_62436868/article/details/127681754