SpringCloud 核心组件Nacos【配置管理&配置拉取】第4章_springcloud怎么获取nacos

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

目录

1Nacos配置管理

1.1统一配置管理

1.1.1为什么需要nacos配置中心 

1.1.2实现nacos配置中的概念

1.1.3在nacos中添加配置文件

1.1.4.从微服务拉取配置

1.4.5 nacos 配置文件加载顺序


1Nacos配置管理

Nacos除了可以做注册中心同样也可以做配置管理来使用

1.1统一配置管理

1.1.1为什么需要nacos配置中心 

一关联服务配置修改麻烦随着我们的微服务越来越多我们在生产环境中可能会有数十上百上千的服务  我现在的一个配置文件需要修改而这个配置文件可能和数十个服务都有关系这个时候我要这个一个配置文件就要把有关联的数十个服务的配置都要进行修改

二 关联服务重启生效麻烦我修改完配置之后这些修改的过的服务是不是都应该进行重启那么在生产环境中重启这么多服务影响还是挺大的

我们的需求是什么我们希望这些配置文件能够实现一个统一的管理比如我现在有十几个服务的配置文件需要修改我不想每个都去修改去修改而是在一个地方完成改动并且我希望修改过的服务不需要重启修改之后立即生效实现服务的热更新

1.1.2实现nacos配置中的概念

处理流程根据在第二点引出的在一个地方进行统一修改而要实现它怎么做到呢我们需要实现一个配置管理服务这个服务的作用是什么呢这个服务会记录一些服务的核心配置放置上去我们的微服务启动的时候就可以去读取配置管理服务配置再加上本地服务配置组成完整配置去使用将来核心配置如果要发生修改我们不需要每个服务去修改而是找到配置管理的服务这个服务上进行改动这个配置管理服务非常的智能  它发现改动之后它会立即通知微服务这个时候微服务一看配置改变了新的配置来了微服务就赶紧完成读取新的配置并且后续完成配置的热更新不需要重启这一来我们的需求就达到了

这个配置管理服务我们将用Nacos配置管理来实现当然我们都知道Nacos是注册中心这个配置管理就是Nacos的第二大特点注册找Nacos配置管理也找Nacos

1.1.3在nacos中添加配置文件

然后在弹出的表单中填写配置信息

注意项目的核心配置需要热更新的配置才有放到nacos管理的必要。基本不会变更的一些配置还是保存在微服务本地比较好。  

DataID配置文件的名称但是这个名称不能像服务中都起application.yml文件名称为什么呢将来的所有的微服务都来找Nacos管理大家都叫这个名字不就冲突了所以

DataID必须是唯一DataID的命名方式一般是这样的服务名称-环境.后缀名

环境开发环境dev测试test均可后缀名一般都是YAML

描述介绍你这个配置管理是干什么的

配置内容怎么填这个内容呢是不是说把application.yml中的所有配置复制进来就行了

不是这样的Nacos配置管理将来这些配置是来做热更新的配置是不是所有的配置都有热更新的配置那肯定不是像数据库的地址还有很多配置都不需要变需要变得都是一些开关类型的配置比如说我给true按照A方案执行给false按照B方案执行比如说服务中的一些活动的开启我给true就开启给false就不开启了并不是所有的配置都要进行热更新要按照需求需要有热更新的配置我们在进行配置Nacos热更新配置

1.1.4.从微服务拉取配置

现在已经把服务的部分配置放置在Nacos配置中心做统一管理我们的微服务就要想办法把Nacos中的配置得到该怎么得到呢

我们先看一下当我们没有nacos的时候微服务怎么执行配置文件的首先项目启动读取本地的application.yml文件然后创建spring容器把各种各样的bean放入当然后面的步骤还有很多

我们主要关注读取本地配置文件

微服务要拉取nacos中管理的配置并且与本地的application.yml配置合并才能完成项目启动。

但如果尚未读取application.yml又如何得知nacos地址呢

因此spring引入了一种新的配置文件bootstrap.yaml文件会在application.yml之前被读取流程如下

bootstrap.yaml文件比application.yml文件优先级高在项目启动时加载bootstrap文件获取文件中的nacos中的地址第二步读取nacos注册中心的配置第三步读取本地配置文件application.yml将读取到的配置和nacos配置合并

实际操作

第一步1.引入Nacos的配置管理客户端依赖

<!--nacos配置管理依赖-->
<dependency>
    <
groupId>com.alibaba.cloud</groupId>
    <
artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</
dependency>

第二步2在configservice中的resource目录添加一个bootstrap.yml文件这个文件是引导文件优先级高于application.yml 

server:
  port: 8072
spring:
  application:
    name: configservice # 服务名称
  profiles:
    active: test #开发环境这里是test
  cloud:
    nacos:
      server-addr: localhost:8848 # Nacos地
      config:
        file-extension: yaml # 文件后缀名

这里会根据spring.cloud.nacos.server-addr获取nacos地址再根据

${spring.application.name}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}作为文件id来读取配置。

本例中就是去读取userservice-dev.yaml

 

 第三步读取nacos配置 我们在configservice中将czxy.message这个属性注入到ConfigController中做测试

结果显示正常获取到nacos配置中心的内容

将配置交给Nacos管理的步骤

Nacos 中添加配置文件
在微服务中引入 nacos config 依赖
在微服务中添加 bootstrap.yml 配置 nacos 地址、当前环境、服务名称、文件后缀名。这些决定了程序启动时去 nacos 读取哪个文件

1.4.5 nacos 配置文件加载顺序

  • spring boot、nacos各种配置文件的加载顺序

    1.bootstrap.yml #引导文件由spring cloud提供

    2.application.yml #应用程序文件有spring boot提供

    3.application-[profile].yml #应用程序profile文件有spring boot提供

    4.[serviceName].yml #nacos配置

    5.[serviceName]-[profile].yml #nacos配置

    • 后面加载的文件将覆盖前面文件的配置内容

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: Spring

“SpringCloud 核心组件Nacos【配置管理&配置拉取】第4章_springcloud怎么获取nacos” 的相关文章