概述部分
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
请求参数
返回值
参数类型 | 描述 |
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)
请求参数
返回值
参数类型 | 描述 |
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(); } }
删除监听
描述
取消监听配置,取消监听后配置不会再推送。
请求参数
使用示例
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;
请求参数
返回参数
参数类型 | 描述 |
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 异常。