• Nacos配置文件管理、微服务获取Nacos配置文件


    传统项目中,当我们需要修改配置文件时,需要修改配置文件,停掉服务,重启服务,这样不利于提升用户体验;
    而使用Nacos进行项目的配置文件管理,则可以实现热更新配置文件,在Nacos中修改之后,Nacos会通知项目新的配置文件。
    在这里插入图片描述

    添加配置文件

    第一步,点击添加配置:
    在这里插入图片描述
    第二步,配置信息
    在这里插入图片描述
    注意:不是所有的配置都写到Nacos中,只建议把那些可能会出现变化的配置写入Nacos,比如说:某活动是否开启(true/false)、日期格式模板(yyyymmdd/yyyy-mm-dd)等,
    而不需要写入Nacos管理的配置比如:数据库地址、自身服务名等

    微服务获取Nacos中的配置

    我们在Nacos中配置了配置文件,那我们的项目在运行时,如何去获取呢?
    在这里插入图片描述
    在以前不使用Nacos进行配置管理时,是使用这样的流程,读取配置文件;那我们在使用Nacos后,我们要什么时候去读取,以什么方式读取Nacos中的文件呢?
    在这里插入图片描述
    我们的项目会在读取本地配置文件application.yml之前,去读取Nacos中的配置,然后读取本地配置,再进行合并;

    那么此时有一个问题:我Nacos的地址写在application.yml中,我们如何在读取本地配置文件之前,去访问Nacos地址,读取到Nacos中的配置呢?
    答案是使用bootstrap.yml。在springboot中,bootstrap.yml的优先级高于application.yml,所有系统会在加载完bootstrap.yml中的配置之后,读取到Nacos的地址,访问Nacos,获取配置文件,再读取application.yml中的配置信息,进行合并。

    我们在Nacos中配置日期格式字符串,进行验证:
    在这里插入图片描述
    在这里插入图片描述
    第一步,引入Nacos客户端(config)依赖
    第二步,在bootstrap.yml中写好本服务名称、开发环境、Nacos地址、文件后缀名,系统将会组合好这些信息去Nacos中获取配置文件
    在这里插入图片描述
    第三步,测试是否能够获取Nacos中配置的日期格式
    在这里插入图片描述
    服务启动,访问控制层,获取日期格式成功并按格式返回结果,证明获取Nacos中配置文件成功
    注意:如果配置了命名空间,也需要配置命名空间
    在这里插入图片描述

    Nacos配置文件热更新

    Nacos的好处之一就是可以实现配置文件热更新,那么我们要如何来实现项目启动后,还可以热更新配置文件呢?
    共有两种方式:
    第一种,在使用Nacos中配置文件的地方,加上@RefreshScope注解,即可实现热更新。
    比如:Nacos修改完配置文件之后,只需刷新前端页面,即可获得最新配置
    在这里插入图片描述
    第二种方式:添加配置类,在配置类上加注解@configrationproperties注解,使其注入到spring容器之中,即可实现热更新

    在这里插入图片描述
    示例:
    更新前:
    在这里插入图片描述
    修改日期格式为yyyy年mm月dd日,点击发布:
    在这里插入图片描述
    不用重启,直接刷新页面,即可取得最新配置值:
    在这里插入图片描述

    配置共享

    在实际开发中,有很多配置项是在Dev(Develpment )开发环境,sit(System Integration Test )系统集成测试,uat(User Acceptance Test)用户验收测试,等多种环境都用到的配置项
    这种配置项如果在每个环境的配置都写一遍,很麻烦不说,万一要修改起来,也要一个个地改。
    那么有没有一种方法,可以实现这样的重复配置,集中放在一个地方,一个配置文件中呢?修改时只需修改这一个地方,所有的环境中调用这个配置的地方都能得到这个值呢?
    这就是我们的配置共享:
    在这里插入图片描述
    userservice-dev.yml是环境配置文件,对应不同的开发环境
    而userservice.yml就是共享配置文件,各种环境都能读取到,不用再每个配置文件中再写一遍

    注意:当我们项目中的配置文件(本地配置)、Nacos中的共享配置、Nacos的环境配置(如dev、uat等配置 )都配置了一项属性,那么在项目启动后,会优先读取哪里的配置呢?
    答案:Nacos环境配置(dev、sit、uat等)>远端共享配置>本地配置
    在这里插入图片描述
    也就是说,如果Nacos环境配置文件、Nacos共享配置文件、项目的本地配置文件都有相同的配置属性,那么项目访问的时候,优先使用Nacos环境配置文件,其次是共享配置,最后是本地配置

  • 相关阅读:
    彻底解决 IDC Incast
    Java中ConcurrentHashMap 和 Hashtable
    UNIAPP实战项目笔记40 设置和地址的页面布局
    PDF中的图片如何提取出来?分享两种提取方法
    解决 net core 3.x 跨域问题
    全网最全的 Java 面试题内容梳理(持续更新中)
    关于2023年汉字小达人市级比赛的填空题,及孩子如何提高打字速度
    citavi显示期刊分区及影响因子
    (附源码)spring boot大学英语智慧教学平台 毕业设计 201722
    用python生成json文件
  • 原文地址:https://blog.csdn.net/dayuiicghaid/article/details/126131768