SpringCloud-03-Nacos配置管理

一、Nacos 配置中心

Nacos Server 还可以作为配置中心,对 Spring Cloud 应用的外部配置进行统一地集中化管理。而我们只需要在应用的 POM 文件中引入 spring-cloud-starter-alibaba-nacos-config 即可实现配置的获取与动态刷新。

从配置管理的角度看,Nacos 可以说是 Spring Cloud Config 的替代方案,但相比后者 Nacos 的使用更简单,操作步骤也更少。

在分布式微服务系统中,几乎所有服务的运行都离不开配置文件的支持,这些配置文件通常由各个服务自行管理,以 properties 或 yml 格式保存在各个微服务的类路径下,例如 application.properties 或 application.yml 等。

这种将配置文件散落在各个服务中的管理方式,存在以下问题:

  • 管理难度大:配置文件散落在各个微服务中,难以管理。
  • 安全性低:配置跟随源代码保存在代码库中,容易造成配置泄漏。
  • 时效性差:微服务中的配置修改后,必须重启服务,否则无法生效。
  • 局限性明显:无法支持动态调整,例如日志开关、功能开关。

 

二、实现配置管理

1. 添加配置管理服务

 

  •  配置文件的id:[服务名称]-[profile].[后缀名]
  • 配置内容:对应需求的相关配置。例如需要热更新的内容

 

 

 

 

2.  配置获取流程图有

 3. 配置获取的具体步骤

  •  添加配置管理依赖
<!-- nacos的配置管理 -->
<dependency>
   <groupId>com.alibaba.cloud</groupId>
   <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
  •  创建bootstrap.yaml文件
  • 文件介绍:这个文件是一个引导文件,优先级高于application.yml

  • 在bootstrap.yml文件配置相关信息
spring:
  application:
    name: userservice
  profiles:
    active: dev # 环境
  cloud:
    nacos:
      server-addr: localhost:8848 # nacos地址
      config:
        file-extension: yaml # 文件后缀名
  • 将application.yml文件中重复的部分删除

4. 验证配置拉取是否生效

  • 通过@Value注解注入nacos配置文件信息,并编写请求接口查看
@Value("${pattern.dateformat}")
    private String dateformat;
    
    @GetMapping("now")
    public String now(){
        return LocalDateTime.now().format(DateTimeFormatter.ofPattern(dateformat));
    }

 注意:一定要注意配置的名称!!!!!

5.  实现热更新的两种方式

  • 通过@Value注解注入,结合@RefreshScope(@Value注入变脸的所在类)来刷新

  • 通过@ConfigurationProperties注入,自动给刷新(无需@RefreshScope注解)推荐使用

 

三、Nacos多环境配置共享

1.微服务启动时会从nacos读取多个配置文件:

  • [服务名称]-[服务环境].[文件后缀]
  • [服务名称].[文件后缀]
  • 无论【服务环境】和变化,[服务名称].[文件后缀] 这个文件一定会加载,因此多环境共享配置可以写入这个文件

2.  多种配置的优先级

[服务名称]-[服务环境].[文件后缀] 服务名称].[文件后缀] > 本地配置

3. 多环境读取共享配置实现

  • 添加 [服务名称].[文件后缀] 文件

 

  •  添加对应属性字段,并配一个请求接口用来测试

添加对应的属性字段

 测试访问的接口

 查看配置中心的 配置文件属性

 

 访问请求路径

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值