前言

在微服务的生态中,统一的配置管理也是至关重要的一环,在市场上也有很多的优秀的组件例如SpringCloud Config、Nacos、Apollo等。Nacos 提供了一个简洁易用的UI (控制台样例 Demo) 帮助您管理所有的服务和应用的配置。Nacos 还提供包括配置版本跟踪、金丝雀发布、一键回滚配置以及客户端配置更新状态跟踪在内的一系列开箱即用的配置管理特性,帮助您更安全地在生产环境中管理配置变更和降低配置变更带来的风险。
本章中我将对Nacos配置中心的基本使用、文件拓展名以及多环境切换来进行详解。

基本使用

下载Nacos服务端Jar包(我用的是Nacos1.4.1):
地址: https://github.com/alibaba/nacos/releases

创建SpringBoot项目并引入依赖:

        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>

在浏览器访问Nacos:localhost:8848/nacos 并创建一个配置文件
dataId: example
Group:DEFAULT_GROUP
配置内容为:user: lyx
在这里插入图片描述
客户端在配置文件中指定配置中心地址并指定DataId:example

spring:
  application:
    name: springcloud-nacos-example
  cloud:
    nacos:
      config:
        server-addr: 127.0.0.1:8848
        file-extension: yaml
        #DataId
        prefix: example

在启动类中获取user配置

public class DubboProviderApplication {

    public static void main(String[] args) throws InterruptedException {
        ConfigurableApplicationContext context = SpringApplication.run(DubboProviderApplication.class, args);
        String user = context.getEnvironment().getProperty("user");
        System.out.println(user);
    }
}

成功获取配置信息并打印在控制台:
在这里插入图片描述

文件拓展名

Nacos Config在读取配置的时候默认会匹配DataId,如果没配置就会默认匹配spring.profile.active.properties。比如我们将配置文件中的prifex配置项取消,并创建一个springcloud-nacos-example.properties配置文件。发现还是可以正常读取配置。但是在nacos config中默认是properties文件后缀的,如果需要指定yaml配置,就要在spring.cloud.nacos.config.file-extension: yaml指定yaml文件。

多环境切换

在Nacospei配置中心中NameSpace可以对不同的开发环境进行区分,group可以针对业务进行配置区分。在通常的开发模式中我们的配置文件都会以application-test.yml、application-prod.yml等命名,然后在application.yml中指定profile来在不同的环境中指定配置。
我们修改bootstrap.yml配置文件中的配置,指定profile,nacos会根据 s p r i n g . a p p l i c a t i o n . n a m e − {spring.application.name}- spring.application.name{file-extension}.${profiles.active}来匹配文件.
在这里插入图片描述
在Nacos创建springcloud-nacos-example-prod.yaml配置文件
在这里插入图片描述
查看控制台,成功获取到配置信息
在这里插入图片描述

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐