• Nacos2.0 配置中心管理,动态配置更新


    前言

    Nacos除了可以做注册中心,同样可以做配置中心来使用。
    当微服务部署的实例越来越多,达到数十、数百时,逐个修改微服务配置就会让人抓狂,而且很容易出错。我们需要一种统一配置管理方案,可以集中管理所有实例的配置。
    当前nacos还提供了配置的历史查询以及监听、版本管理等功能,总的来说功能还是很强大的
    监听查询
    在这里插入图片描述

    Nacos2 Config的升级

    Nacos1.0配置管理之前用 Http1.1 的 Keep Alive 模式 30s 发一个心跳模拟长链接,协议难以理解,内存消耗大,推送性能弱,因此 2.0 通过 gRPC 彻底解决这些问题,内存消耗大量降低
    在这里插入图片描述

    Confg配置的实现

    启动Nacos注册中心

    在这里插入图片描述

    引入jar

    		<dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
            </dependency>
    
    • 1
    • 2
    • 3
    • 4

    创建项目

    编写bootstrap.yml和application.yml配置文件,bootstrap的配置文件运行时级别比application要高
    在springboot2020.0.0以上的版本默认不会去读取bootstrap配置文件,因此要引入

     	<!-- 2020.0.0 版本不在默认加载bootstrap 文件 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bootstrap</artifactId>
        </dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    bootstrap.yml

    # nacos配置
    spring:
      application:
        name: nacos-config-client
      cloud:
        nacos:
          discovery:
            server-addr: localhost:8848 #Nacos服务注册中心地址
          config:
            server-addr: localhost:8848 #Nacos作为配置中心地址
            file-extension: yaml #指定yaml格式的配置
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    application.yml

    spring:
      profiles:
        active: dev # 表示开发环境
    
    • 1
    • 2
    • 3

    创建config配置文件,在Nacos注册中心中

    登陆nacos中创建配置文件

    在这里插入图片描述

    新建页面

    在这里插入图片描述

    • 命名空间
      解决多环境及多租户数据的隔离问题 在多套不同的环境下,可以根据指定的环境创建不同的Namespace,实现多环境的数据隔离。 Nacos中默认提供的命名空间则是public。
    • GREOUP
      Nacos 中的一组配置集,是组织配置的维度之一,简单的说则是不同的系统或微服务的配置文件可以放在一个组里。 Nacos如果不指定Group,则默认的分组是DEFAULT_GROUP。
    • Data ID
      dataId是一个配置的唯一标识。 格式: p r e f i x − {prefix}- prefix{spring.profiles.active}.${file-extension}

    创建后的效果

    在这里插入图片描述

    配置内容

    config:
        info: nacos-config-client-dev.yaml,version = 4
    
    • 1
    • 2

    创建Controller

    @RefreshScope 必段加上,不然不会刷新配置

    @RestController
    @RefreshScope //支持Nacos的动态刷新功能。
    public class ConfigClientController {
    
    
        @Value("${config.info}")
        private String info;
    
        @GetMapping("/get")
        public String get() {
            return "获取的config配置下的值为" + info;
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    运行效果

    在这里插入图片描述

    刷新配置

    当要修改config时,会提示更新的内容,点击【确认发布】后
    在这里插入图片描述
    在这里插入图片描述
    控制监控内容发生变化,已经刷新了配置的值,不过注意,如把数据库的配置或者端口之类的加在配置文件中,那可能需要重启才会生效了,下图配置已更新
    在这里插入图片描述

    其他

    欢迎有问题及时交流~
    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多交流

  • 相关阅读:
    【NLP屠夫系列】- NER之实战BILSTM
    人工神经网络的典型模型,2020最新神经网络模型
    uniapp 中 vuex 的使用
    探索以太坊 Layer 2 解决方案的后起之秀——Starknet
    OpenGL入门(四)之纹理Texture
    2023-10-28 关于MICROPYTHON的OTA实现
    蓝牙 or 2.4G or 5.8G?你会选择耳机吗
    android12.0(S) 通知栏不显示闹钟和静音图标 bug
    【数学建模】层次分析
    linux笔记8--安装软件
  • 原文地址:https://blog.csdn.net/elvishehai/article/details/125525393