• SpringCloud 配置中心(Nacos)的简单使用


    作者:大三的土狗
    专栏:SpringCloud
    在这里插入图片描述

    前言

      Nacos 是 Spring Cloud Alibaba 核心组件之一,可以用作 Spring Cloud 的注册中心和配置中心,本文重点讲述 Nacos 在SpingCloud 的配置作用。

      Nacos 的动态配置消除了配置变更时重新部署应用和服务的需要,让配置管理变得更加高效和敏捷,配置中心化管理让实现无状态服务变得更简单,让服务按需弹性扩展变得更容易。

    1、统一配置管理

      当微服务部署的实例越来越多,逐个修改微服务配置,显然不现实,而且很容易出错。我们需要一种统一配置管理方案,可以集中管理所有实例的配置,他就是 Nacos 。

      我们服务中配置如果都放在代码中或者项目里的配置文件中,那么逐个修改微服务配置,提交上线,重启服务,那么将十分不科学,如果我们使用统一配置管理,就可以在服务启动的时候从配置管理服务读取配置,启动后,修改配置后,也会主动通知我们的服务。

    1、在nacos中添加配置文件

    Nacos 微服务也可以将配置变更通知到微服务。

    在这里插入图片描述

    详细步骤如下:

    1、在配置列表中添加配置。

    在这里插入图片描述

    2、然后在弹出的表单中,填写配置信息。

    在这里插入图片描述

    2、从微服务拉取配置

    数多微服务可以从Nacos 配置中心拉取配置。

    在这里插入图片描述

    nacos-config依赖

    
    
        com.alibaba.cloud
        spring-cloud-starter-alibaba-nacos-config
    
    
    • 1
    • 2
    • 3
    • 4
    • 5

    服务名称、开发环境、Nacos地址、文件后缀名等等要与nacos中配置文件保持一致,保证拉取的高可用。

    测试

    1、引入nacos-config依赖

    首先,在user-service服务中,引入nacos-config的客户端依赖。

    
    <dependency>
        <groupId>com.alibaba.cloudgroupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-configartifactId>
    dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    2、添加bootstrap.yaml

    在user-service中添加一个bootstrap.yaml文件,内容如下。

    spring:
      application:
        name: user-service # 服务名称
      cloud:
        nacos:
          server-addr: localhost:8848 # Nacos地址
          config:
            file-extension: yaml # 文件后缀名
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    这里的bootstrap.yaml与刚刚在nacos中添加的配置文件一一对应。

    3、读取nacos配置

    在user-service中的UserController中添加业务逻辑,读取pattern.dateformat配置。

        @Value("${pattern.dateformat}")     //在nacos中添加的配置文件
        private String dateformat;
    
        @GetMapping("now")
        public String now(){                //获取在nacos中添加的配置文件
            return LocalDateTime.now().format(DateTimeFormatter.ofPattern(dateformat));
        }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    4、在页面访问,可以看到效果。

    在这里插入图片描述

    2、配置热更新

    我们最终的目的,微服务中无需重启即可让配置生效,也就是配置热更新

    1、方式一

    在@Value注入的变量所在类上添加注解@RefreshScope。

    在这里插入图片描述

    2、方式二

    使用@ConfigurationProperties注解代替@Value注解。

    在user-service服务中,添加一个配置类,读取patterrn.dateformat属性。

    @Component			//配置类
    @Data				//get、set
    @ConfigurationProperties(prefix = "pattern")
    public class PatternProperties {
        private String dateformat;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在UserController中使用这个类代替@Value。

    	@Autowired
        private PatternProperties patternProperties;
    
        @GetMapping("now")
        public String now(){                //获取在nacos中添加的配置文件
            return LocalDateTime.now().format(DateTimeFormatter.ofPattern(patternProperties.getDateformat()));
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    此时便实现了配置热更新,修改在Naocs的配置不用重启微服务也能读取到,达到我们的让配置管理变得更加高效和敏捷的目的。

    总结

      以上就是 Nacos 作为配置中心的简单使用,其实主要就两点,一是 Naocs 作为配置中心的添加配置文件及微服务拉去配置信息使用,二是实现配置热更新,从而达到我们的让配置管理变得更加高效和敏捷的目的。

      每日一句毒鸡汤:窮一點不要緊,要緊的是不只一點。

  • 相关阅读:
    map 模拟与用法
    MTK的充电方案—PMIC充电
    在 HarmonyOS 上实现 ArkTS 与 H5 的交互
    flyway的快速入门教程
    MySQL - 深入理解 MySQL 的事务和隔离级别
    云计算未来展望:边缘计算、量子计算与AI
    生信豆芽菜-机器学习筛选特征基因
    JupyterHub
    ELK 企业级日志分析系统
    信息学奥赛一本通-编程启蒙3097:练17.3 比大小
  • 原文地址:https://blog.csdn.net/qq_53463544/article/details/126557435