云原生之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 异常。




相关文章
|
1月前
|
Dubbo 关系型数据库 MySQL
nacos常见问题之命名空间配置数据上线修改如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
123 1
|
1月前
|
存储 运维 监控
NACOS 配置中心和注册中心是分两个集群部署还是放在一个集群中
【2月更文挑战第33天】NACOS 配置中心和注册中心是分两个集群部署还是放在一个集群中
101 2
|
10天前
|
Java Nacos Maven
Sentinel1.8.6更改配置同步到nacos(项目是Gateway)
Sentinel1.8.6 nacos springcloud springcloud-alibaba gateway
|
20天前
|
负载均衡 Nacos 数据库
【Nacos】配置管理、微服务配置拉取、实现配置热更新、多环境配置
【Nacos】配置管理、微服务配置拉取、实现配置热更新、多环境配置
36 1
|
22天前
|
Dubbo Cloud Native 应用服务中间件
【阿里云云原生专栏】云原生环境下的微服务治理:阿里云 Dubbo 与 Nacos 的深度整合
【5月更文挑战第25天】阿里云Dubbo和Nacos提供微服务治理的强大工具,整合后实现灵活高效的治理。Dubbo是高性能RPC框架,Nacos则负责服务发现和配置管理。整合示例显示,通过Nacos注册中心,服务能便捷注册发现,动态管理配置。简化部署,提升适应性,但也需注意服务稳定性和策略规划。这种整合为云原生环境的微服务架构带来强大支持,未来应用前景广阔。
214 2
|
1月前
|
Nacos
nacos 配置页面的模糊查询
nacos 配置页面的模糊查询
|
1月前
|
运维 负载均衡 Cloud Native
Serverless 应用引擎产品使用之在Serverless 应用引擎中,使用云原生网关的情况下,SLB(负载均衡器)和证书配置如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
1月前
|
机器学习/深度学习 Java Nacos
Nacos 配置中心(2023旧笔记)
Nacos 配置中心(2023旧笔记)
25 0
|
1月前
|
存储 前端开发 Java
第十一章 Spring Cloud Alibaba nacos配置中心
第十一章 Spring Cloud Alibaba nacos配置中心
43 0
|
1月前
|
敏捷开发 API 持续交付
云效产品使用常见问题之把云效上的配置发到Nacos上面去如何解决
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。