云原生之nacos 配置SDK解读

简介: 云原生之nacos 配置SDK解读

概述部分

Maven 坐标

<dependency>
    <groupId>com.alibaba.nacos</groupId>
    <artifactId>nacos-client</artifactId>
    <version>${version}</version>
</dependency>

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

配置管理

获取配置

描述

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

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

请求参数


image.png

返回值

参数类型 描述
string 配置值

请求示例

try {
  String serverAddr = "{serverAddr}";
  String dataId = "{dataId}";
  String group = "{group}";
  Properties properties = new Properties();
  properties.put("serverAddr", serverAddr);
  ConfigService configService = NacosFactory.createConfigService(properties);
  String content = configService.getConfig(dataId, group, 5000);
  System.out.println(content);
} catch (NacosException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

异常说明

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

监听配置

描述

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

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

请求参数


image.png


返回值

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

请求示例


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

删除监听

描述

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

请求参数

image.png

使用示例

String serverAddr = "{serverAddr}";
String dataId = "{dataId}";
String group = "{group}";
Properties properties = new Properties();
properties.put("serverAddr", serverAddr);
ConfigService configService = NacosFactory.createConfigService(properties);
configService.removeListener(dataId, group, yourListener);

发布配置

描述

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

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

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


请求参数

image.png

返回参数

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


请求示例


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

异常说明

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

删除配置


描述

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

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


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

请求参数

参数名 参数类型 描述
dataId string 配置 ID
group string 配置分组


返回参数

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


请求示例

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

异常说明

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




相关文章
|
安全 Java API
Nacos 3.0 Alpha 发布,在安全、泛用、云原生更进一步
近期,我们欣喜地宣布 Nacos 3.0 的第一个版本 Nacos 3.0-ALPHA 已经发布。Nacos 3.0 的目标是在 2.0 的基础上,进一步优化安全性、易用性和标准化。同时,我们将引入更多功能,帮助用户在分布式协调、AI 大模型、云原生等多种场景中更好地使用 Nacos,以提升其广泛适应性。
951 139
|
Cloud Native Java Nacos
微服务时代的新宠儿!Spring Cloud Nacos实战指南,带你玩转服务发现与配置管理,拥抱云原生潮流!
【8月更文挑战第29天】Spring Cloud Nacos作为微服务架构中的新兴之星,凭借其轻量、高效的特点,迅速成为服务发现、配置管理和治理的首选方案。Nacos(命名和配置服务)由阿里巴巴开源,为云原生应用提供了动态服务发现及配置管理等功能,简化了服务间的调用与依赖管理。本文将指导你通过五个步骤在Spring Boot项目中集成Nacos,实现服务注册、发现及配置动态管理,从而轻松搭建出高效的微服务环境。
1033 0
|
安全 Cloud Native 测试技术
Star 3w+,向更安全、更泛化、更云原生的 Nacos3.0 演进
祝贺 Nacos 社区 Star 数突破 30000!值此时机,回顾过去的两年时间,Nacos 从 2.0.4 版本演进到了 2.4.2 版本,基本完成了当初构想的高性能、易拓展的目标,并且对产品的易用性和安全性进行了提升,同时优化了新的官网,并进行了多语言和更多生态支持。未来,Nacos 会向更安全、更泛化、更云原生的 Nacos3.0 演进。
725 132
|
人工智能 算法 Nacos
Nacos Python SDK 强势来袭,动态管理大模型 Prompt!
Nacos Python SDK——nacos-sdk-python1.0.0 稳定版正式发布啦!
1441 138
|
安全 Java API
Nacos 3.0 Alpha 发布,在安全、泛用、云原生更进一步
Nacos 3.0 Alpha 发布,在安全、泛用、云原生更进一步
600 0
|
API 开发工具 vr&ar
PicoVR Unity SDK⭐️一、SDK下载、项目设置与程序初始配置
PicoVR Unity SDK⭐️一、SDK下载、项目设置与程序初始配置
|
数据可视化 API 开发工具
影创SDK☀️三、工程默认配置,及基础测试建议
影创SDK☀️三、工程默认配置,及基础测试建议
|
Java API 开发工具
影创SDK☀️二、开发环境配置
影创SDK☀️二、开发环境配置
|
移动开发 JavaScript 开发工具
Mac 10.9x下安装配置phonegap3.0开发环境 (涉及android sdk配置)
Mac 10.9x下安装配置phonegap3.0开发环境 (涉及android sdk配置)
|
移动开发 JavaScript Java
windows7下安装配置phonegap3.0 (cordavo)开发环境 (涉及android sdk配置)
windows7下安装配置phonegap3.0 (cordavo)开发环境 (涉及android sdk配置)