IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> Nacos做配置中心使用 -> 正文阅读

[Java知识库]Nacos做配置中心使用

Nacos 提供用于存储配置和其他元数据的 key/value 存储,为分布式系统中的外部化配置提供服务器端和客户端支持。使用 Spring Cloud Alibaba Nacos Config,您可以在 Nacos Server 集中管理你 Spring Cloud 应用的外部属性配置。

前面已经搭建好 Nacos Server服务了,接下里使用 Nacos 做配置中心。

一、Nacos配置中心Java使用(了解)

1、添加配置

在Nacos Server服务的配置管理中添加一个配置。

在这里插入图片描述
注意:DataId唯一,每个配置的DataId都不能重复。

2、Java代码获取配置

把界面中的示例代码稍微改一改就可以使用了。

public class NacosConfigJavaDemo {

	public static void main(String[] args) throws NacosException, InterruptedException {
        String serverAddr = "192.168.xxx.xxx";
        String dataId = "nacos.config.java.demo";
        String group = "DEFAULT_GROUP";

        Properties properties = new Properties();
        properties.put(PropertyKeyConst.SERVER_ADDR, serverAddr);
        // 获取Naocs配置服务
        ConfigService configService = NacosFactory.createConfigService(properties);
        /**
         * 1.获取Nacos配置
         */
        String content = configService.getConfig(dataId, group, 5000);
        System.out.println("nacos.config.java.demo配置信息如下:\n" + content);

        /**
         * 2.注册监听器,配置发生修改并发布时,获取发布后的配置信息。
         */
        configService.addListener(dataId, group, new Listener() {
            @Override
            public void receiveConfigInfo(String configInfo) {
                System.out.println("receiveConfigInfo方法,获取发布后的配置信息:\n" + configInfo);
            }

            @Override
            public Executor getExecutor() {
                return null;
            }
        });


        /**
         * 3.发布配置,发送 properties格式的配置信息(可指定发布文件格式)。
         */
        TimeUnit.SECONDS.sleep(5);
        String content2 = "server:\n" +
                "  port: 18082\n" +
                "user:\n" +
                "  age: 33  #年龄\n" +
                "  name: nacos-config-yaml";
        boolean isPublishOk = configService.publishConfig(dataId,group,content2, ConfigType.YAML.getType());
        System.out.println("isPublishOk = " + isPublishOk);

        /**
         * 4.删除配置
         */
        //TimeUnit.SECONDS.sleep(5);
        //boolean isRemoveOk = configService.removeConfig(dataId, group);
        //System.out.println("isRemoveOk = "isRemoveOk);

        // 防止main方法结束
        TimeUnit.MINUTES.sleep(3);

    }

}

测试结果如下:到此 Nacos配置中心就可以管理我们的配置信息了。

在这里插入图片描述

二、Spring Cloud整合Nacos配置中心使用

官方文档:

1、微服务接入Nacos配置中心

1)引入依赖

<dependency> 
    <groupId>com.alibaba.cloud</groupId> 
    <artifactId>spring‐cloud‐starter‐alibaba‐nacos‐config</artifactId> 
</dependency>

2)添加 bootstrap.properties

使用 bootstrap.properties 配置文件来配置 Nacos Server 地址。

# 配置中心地址
spring.cloud.nacos.config.server‐addr=192.168.xxx.xxx:8848
# dataid 为 yaml 的文件扩展名配置方式
spring.cloud.nacos.config.file‐extension=yaml
spring.application.name=nacos-config
#profile粒度的配置 `${spring.application.name}‐${profile}.${file‐extension:properties}`
#spring.profiles.active=dev

在 Nacos Spring Cloud 中,dataId 的完整格式如下:

${prefix}-${spring.profiles.active}.${file-extension} 
  • prefix: 默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置。
  • spring.profiles.active: 即为当前环境对应的 profile, 注意:当 spring.profiles.active 为空时,对应的连接符 - 也将不存在, dataId 的拼接格式变成 p r e f i x . {prefix}. prefix.{file-extension}
  • file-exetension: 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。

3)添加配置

在 Nacos Server配置中心中新建 DataId为 nacos‐config的 yaml格式的配置文件。

在这里插入图片描述

2、获取配置测试类

启动服务,使用 Spring原生的 @Value(“key”)注解获取配置即可。

  • @Value注解:可以获取到配置中心的值,但是无法动态感知修改后的值。
  • @RefreshScope注解:Nacos的注解,可以实现动态感知配置中心修改后的值。
@RestController
@RefreshScope
public class NacosConfigController {

    /**
     * 使用 Spring原生的 @Value(“key”)注解获取配置
     */
    @Value("${server.port}")
    private String port;

    @Value("${user.name}")
    private String userName;

    @GetMapping("getNacosConfig")
    public String providerTest() {
        String str = "port:" + port + "====userName:" + userName;
        System.out.println(str);
        return str;
    }
}

测试ok。

在这里插入图片描述
在配置 spring.profiles.active=dev使用时,没有生效。暂时没理解。

在这里插入图片描述

– 求知若饥,虚心若愚。

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-08-19 18:50:24  更:2022-08-19 18:51:38 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 12:52:16-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码