SpringCloud详解07-Nacos配置管理

系列文章目录


文章目录

  • 系列文章目录
  • 前言
  • 一、nacos配置管理
  • 二、使用步骤
    • 1.基本配置
    • 2.导入Nacos配置
  • 三、配置实时刷新
  • 总结


前言

接上篇,本篇记录Nacos的配置管理
所有的代码都是基于前篇的基础上


一、nacos配置管理

微服务架构中有很多服务,一个服务就对应了一个配置文件,当服务变多时,通过一个个yml配置文件去管理,往往变得很麻烦,需要开发人员一一寻找,维护性变差,此时就需要我们通过Nacos去统一的管理配置。这样做的好处是我们的配置不用写在项目中,实现集中化的管理,方便环境的变更。

二、使用步骤

1.基本配置

在springcloud-alibaba-microservice-gateway-9090(网关)和springcloudalibaba-micro-service-consumer-8080(服务消费方)工程中都导入依赖

<dependency>
    <groupId>com.alibaba.cloudgroupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-configartifactId>
dependency>
  • 手动在桌面创建文件夹,命名为:micro-service-gateway
    然后把springcloud-alibaba-microservice-gateway-9090网关工程中的application.yml中的中文注释都删了再拷贝过去,
    修改名称为:micro-service-gateway-dev.yml,
    然后再复制一份,命名改为:micro-service-gateway-test.yml,
    修改micro-service-gateway-test.yml中的内容,使其和micro-service-gateway-dev.yml文件的内容略有不同即可,
    比如:修改micro-service-gateway-test.yml 端口号为9091。
  • 同样类似的方式,对springcloudalibaba-micro-service-consumer-8080工程中的application.yml也执行一遍。
  • 最后,分别对micro-service-gateway和micro-service-consumer两个文件夹打成zip压缩包文件,一会要导入到nacos中使用。

完成后大概如下:
SpringCloud详解07-Nacos配置管理_第1张图片
然后打成zip压缩文件

在springcloud-alibaba-microservice-gateway-9090(网关)和springcloudalibaba-micro-service-consumer-8080(服务消费方)工程中都配置bootstrap.yml,内容如下:(group和name对应的值最好和刚才桌面上创建文件夹的名称一致),然后把两个工程中原来的application.yml命名为application.yml.bak

spring:
  cloud:
    nacos:
      config:
        server-addr: 127.0.0.1:8848
        # 配置文件的后缀名
        file-extension: yml
        # 配置在nacos上的组名
        group: micro-service-gateway
  application:
    # 服务名称
    name: micro-service-gateway
  profiles:
    # 配置文件环境(生产环境,开发环境,测试环境等等,对应不同的application-*.yml文件)
    active: dev
spring:
  cloud:
    nacos:
      config:
        server-addr: 127.0.0.1:8848
        # 配置文件的后缀名
        file-extension: yml
        # 配置在nacos上的组名
        group: micro-service-consumer
  application:
    # 服务名称
    name: micro-service-consumer
  profiles:
    # 配置文件环境(生产环境,开发环境,测试环境等等,对应不同的application-*.yml文件)
    active: dev

目录结构如下:
SpringCloud详解07-Nacos配置管理_第2张图片

2.导入Nacos配置

在Nacos管理界面,将上一步打好的zip压缩包导入
SpringCloud详解07-Nacos配置管理_第3张图片
重启网关和消费方服务

  • 配置 active: dev 则显示nacos中对应 *-dev.yml配置文件中的内容;
  • 配置 active: test则显示nacos中对应 *-test.yml配置文件中的内容;

三、配置实时刷新

在Controller中添加方法并测试,修改springcloudalibaba-micro-consumer-8080中FeignUserController,在FeignUserController上添加实时刷新注解@RefreshScope

@RefreshScope//实时刷新
@RestController
@RequestMapping("feign")
public class UserFeignController {

    @Value("${user.username}")
    private String username;

    @RequestMapping("getUserName")
    public String getUserName(){
        return username;
    }

在nacos面板中修改对应加载的microservice-consumer-test.yml,设置user.username的值为张三

SpringCloud详解07-Nacos配置管理_第4张图片

启动springcloudalibaba-micro-consumer-8080工程,访问getUsername方法测试

SpringCloud详解07-Nacos配置管理_第5张图片

然后,在Nacos配置中,修改consume-dev文件中的张三为大飞,发布后再次访问方法

SpringCloud详解07-Nacos配置管理_第6张图片
SpringCloud详解07-Nacos配置管理_第7张图片

不需要重启服务,再次访问:
SpringCloud详解07-Nacos配置管理_第8张图片
实时更新完毕!


总结

本篇主要记录了Nacos的配置管理,更多内容见下篇

你可能感兴趣的:(SpringCloud,分布式架构,spring,cloud,分布式,微服务)