Nacos 监听配置

Nacos 的监听查询用来查看有哪些 Nacos 客户端正在监听配置集,下面示例通过 ConfigService 类的 addListener() 方法添加一个监听器,监听指定的配置集。当配置集发生变化时,Nacos 服务会自动发送变更通知到客户端。

代码如下:

package com.hxstrive.nacos;

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 java.util.Properties;
import java.util.concurrent.Executor;

/**
* Nacos SDK 简单DEMO
* @author hxstrive.com
*/
public class SimpleDemo {

   public static void main(String[] args) throws NacosException {
       // Nacos 地址
       String serverAddr = "127.0.0.1:8848";
       // Data ID
       String dataId = "my_config";
       // Group
       String group = "DEFAULT_GROUP";

       Properties config = new Properties();
       config.put("serverAddr", serverAddr);
       // 关键代码,指定为 dev 命名空间
       config.put("namespace", "8719efd1-94a6-49f7-9846-2debd66f6c0f");

       // 如果 Nacos 开启了登录权限,则指定用户名和密码
       // 如果没有开启登录权限,则注释掉下面两行代码
       config.put("username", "nacos");
       config.put("password", "nacos");

       ConfigService configService = NacosFactory.createConfigService(config);
       // 添加监听器【关键代码】
       configService.addListener(dataId, group, new Listener() {
           public Executor getExecutor() {
               return null;
           }

           public void receiveConfigInfo(String configInfo) {
               // 接收配置变更通知
               System.out.println(configInfo);
           }
       });

       // String getConfig(String dataId, String group, long timeoutMs) throws NacosException;
       // timeoutMs 为获取配置超时时间,单位毫秒
       String content = configService.getConfig(dataId, group, 5000);
       System.out.println(content);

       // 注意:这里写一个简单循环,是为了避免程序执行完后立即结束
       while (true) {
           try {
               Thread.sleep(1000);
           } catch (InterruptedException e) {
               throw new RuntimeException(e);
           }
       }
   }

}

运行示例,输出如下:

version=2.2.3
name=nacos

此时,进入到 Nacos 的 “监听查询” 页面,根据 Data ID 和 Group 条件进行过滤,如下图:

Nacos 监听配置

上图中,显示只有一个客户端在监听 dev 命名空间中的 my_config 配置集。

最后,我们尝试着去修改一下 dev 命名空间中名为 my_config 的配置集,示例输出如下:

version=2.2.3
name=nacos
version=2.2.3
name=nacos_update

上面输出中,最后两行均是更新后的最新配置内容。

说说我的看法
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号