当前位置: 代码网 > it编程>编程语言>Java > Java SDK获取和监听nacos配置信息的方法

Java SDK获取和监听nacos配置信息的方法

2026年07月21日 Java 我要评论
手动新建配置用于测试输入一些配置内容:k1=v1spring.datasource.username=kenspring.datasource.password=123456点击发布:查看,点击【示例

手动新建配置用于测试

输入一些配置内容:

k1=v1
spring.datasource.username=ken
spring.datasource.password=123456

点击发布:

查看,点击【示例代码】,查看java示例代码:

curl方式访问配置

curl -x get "http://223.2.35.53:8848/nacos/v1/cs/configs?dataid=test&group=default_group"

可以获得前面在nacos中配置的内容。说明服务端的接口没问题。

工程示例:获取nacos配置

新建一个maven工程。

增加nacos客户端依赖

在pom.xml中添加:

        <dependency>
            <groupid>com.alibaba.nacos</groupid>
            <artifactid>nacos-client</artifactid>
            <version>2.1.1</version>
        </dependency>

获取配置的java代码

基于上面的示例代码,只是简化了:

import com.alibaba.nacos.api.nacosfactory;
import com.alibaba.nacos.api.config.configservice;
import com.alibaba.nacos.api.propertykeyconst;
import java.util.properties;
public class main {
    public static void main(string[] args) throws exception {
        string serveraddr = "localhost:8848";
        string dataid = "test";
        string group = "default_group";
        properties properties = new properties();
        properties.put(propertykeyconst.server_addr, serveraddr);
        configservice configservice = nacosfactory.createconfigservice(properties);
        string content = configservice.getconfig(dataid, group, 2000);
        system.out.println("sdk result: '\n" + content + "'");
    }
}

直接运行,报错缺少org.slf4j.loggerfactory

修改pom.xml引入slf4j

通过增加springboot相关,间接引入日志:

<?xml version="1.0" encoding="utf-8"?>
<project xmlns="http://maven.apache.org/pom/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"
         xsi:schemalocation="http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelversion>4.0.0</modelversion>
    <groupid>org.example</groupid>
    <artifactid>test-java</artifactid>
    <version>1.0-snapshot</version>
    <parent>
        <artifactid>spring-boot-parent</artifactid>
        <groupid>org.springframework.boot</groupid>
        <version>2.6.5</version>
    </parent>
    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>
    <dependencies>
        <dependency>
            <groupid>org.springframework.boot</groupid>
            <artifactid>spring-boot-starter-web</artifactid>
        </dependency>
        <dependency>
            <groupid>com.alibaba.nacos</groupid>
            <artifactid>nacos-client</artifactid>
            <version>2.1.1</version>
        </dependency>
    </dependencies>
</project>

获取的nacos配置信息为null

方案1

引入的nacos的jar包版本是2.1.1,但是运行上面代码,获取nacos配置信息为null,即的content为null。
解决方法即降低jar包版本为1.4.4

方案2

docker创建容器时多映射两个端口:

  -p 9848:9848 \    # 关键:暴露 grpc 端口
  -p 9849:9849 \    # 关键:暴露 grpc 服务端端口

这样可以用 nacos 2.x 的新特性(如配置监听、长连接优势)。

成功获取配置信息

运行java代码,成功获取nacos的配置信息:

工程示例:监听nacos配置的变化

在前面工程的基础上,修改java代码:

import com.alibaba.nacos.api.nacosfactory;
import com.alibaba.nacos.api.config.configservice;
import com.alibaba.nacos.api.propertykeyconst;
import com.alibaba.nacos.api.config.listener.listener;
import java.util.properties;
import java.util.concurrent.executor;
public class main {
    public static void main(string[] args) throws exception {
        string serveraddr = "localhost:8848";
        string dataid = "test";
        string group = "default_group";
        properties properties = new properties();
        properties.put(propertykeyconst.server_addr, serveraddr);
        configservice configservice = nacosfactory.createconfigservice(properties);
        string content = configservice.getconfig(dataid, group, 2000);
        system.out.println("sdk result: '\n" + content + "'");
        //监听配置变化
        configservice.addlistener(dataid, group, new listener() {
            @override
            public executor getexecutor() {
                return null;
            }
            @override
            public void receiveconfiginfo(string s) {
                system.out.println("receiveconfiginfo");
                system.out.println(s);
            }
        });
        system.in.read();//避免程序结束
    }
}

然后修改nacos服务端上的配置信息,重新发布。
客户端监听到配置信息变化后,自动将其打印。

以上就是java sdk获取和监听nacos配置信息的方法的详细内容,更多关于java sdk获取监听nacos配置信息的资料请关注代码网其它相关文章!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com