Nacos学习之使用Nacos作为配置中心

使用Nacos作为配置中心

简单使用

1、导入依赖

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

2、创建bootstrap.properties文件,在其中对nacos配置中心进行配置

#应用名
spring.application.name=gulimall-product
#配置中心地址
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
#配置文件前缀
spring.cloud.nacos.config.prefix=product

3、创建application.properties,在其中配置一些数据

product.user.name=zhangsan
product.user.age=20

4、获取application.properties中的数据,进行测试,可以正常获取到配置文件中的值


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

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

    @RequestMapping("/test1")
    public void test1() {
        System.out.println(name + " " + age);
    }

5、在nacos中创建配置文件并配置数据
Nacos学习之使用Nacos作为配置中心_第1张图片
Nacos学习之使用Nacos作为配置中心_第2张图片

Nacos Config 主要通过 dataId 和 group 来唯一确定一条配置。Nacos Client 从 Nacos Server 端获取数据时,调用的是此接口 ConfigService.getConfig(String dataId, String group, long timeoutMS)
在 Nacos Config Starter 中,dataId 的拼接格式如下

  • prefix - spring.profiles.active. file-extension,prefix 默认为 spring.application.name的值,也可以通过配置项 spring.cloud.nacos.config.prefix 来配置;
  • spring.profiles.active 即为当前环境对应的 profile,注意,当 activeprofile 为空时,对应的连接符 -也将不存在,dataId 的拼接格式变成prefix.file-extension,file-extension 为配置内容的数据格式,可以通过配置项spring.cloud.nacos.config.file-extension 来配置。 目前只支持 properties 类型;
    Group:Group 默认为 DEFAULT_GROUP,可以通过 spring.cloud.nacos.config.group 配置

6、重启应用,重新测试,可以看到数据是从nacos中读取的。
Nacos学习之使用Nacos作为配置中心_第3张图片

7、目前修改了nacos中配置文件的值,需要重启应用才能更新。可以使用@RefreshScope动态刷新数据,将此注解加到指定的controller上

@RefreshScope

命名空间与配置分组

命名空间:用于进行租户粒度的隔离。不同命名空间下可以存在相同的Group或者Data ID配置。命名空间的常见应用场景是不同环境的配置的区分隔离,例如开发、测试环境和生产环境的配置隔离。

在命名空间菜单下,可以进行创建命名空间等操作,同时可以看到所有的命名空间。图片中有两个命名空间:public和product,public命名空间是默认就存在的。
Nacos学习之使用Nacos作为配置中心_第4张图片
当有多个命名空间时,可以通过命名空间id使用指定的命名空间。
Nacos学习之使用Nacos作为配置中心_第5张图片

配置集:一组相关或者不相关的配置项的集合称为配置集。在系统中,一个配置文件通常就是一个配
置集,包含了系统各个方面的配置。例如,一个配置集可能包含了数据源、线程池、日志级别等配置项。简单来说配置集就是配置的集合。
配置集ID:即Data ID。配置集 ID 是组织划分配置的维度之一。Data ID 通常用于组织划分系统的配置集。一个系统或者应用可以包含多个配置集,每个配置集都可以被一个有意义的名称标识。简单来说就是配置文件的名称。
Nacos学习之使用Nacos作为配置中心_第6张图片
配置分组:Nacos中的一组配置集,是组织配置的维度之一,通过一个字符串对配置集进行分组,从而区分Data ID相同的配置集。创建一个配置时,如果未填写配置分组的名称,则配置分组的名称默认为DEFAULT_GROUP。
Nacos学习之使用Nacos作为配置中心_第7张图片
在微服务项目中可以为每个服务建立一个命名空间,然后使用配置分组区分不同的环境。

如果我们创建了多个命名空间,默认会使用public命名空间中的对应配置文件。如果想要获取指定命名空间中的配置文件,可以在bootstrap.properties中使用spring.cloud.nacos.config.namespace指定命名空间

spring.cloud.nacos.config.namespace=75f4348e-ec88-46d0-b50e-394bff2dc4fe

如果我们在一个创建了多个配置分组,那么默认会加载DETAIL_GROUP配置分组中的数据,如果想获取指定分组中的数据,可以使用spring.cloud.nacos.config.group配置指定分组。

spring.cloud.nacos.config.group=dev

加载多配置集

在开发中,我们不会把所有的配置写在一个配置文件中,而是会把它拆分为多个配置文件,那么当我们拆分为多个配置文件后,怎么在启动时同时加载这些配置文件呢?
nacos提供了spring.cloud.nacos.config.ext-config配置去加载多个配置文件
Nacos学习之使用Nacos作为配置中心_第8张图片
通过下面的方式去加载多个配置文件

#应用名
spring.application.name=gulimall-product
#配置中心地址
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
#指定配置集文件的名称
spring.cloud.nacos.config.prefix=product
#指定命名空间
spring.cloud.nacos.config.namespace=75f4348e-ec88-46d0-b50e-394bff2dc4fe

#加载多配置文件
spring.cloud.nacos.config.ext-config[0].data-id=datasource.yml
spring.cloud.nacos.config.ext-config[0].group=dev
spring.cloud.nacos.config.ext-config[0].refresh=true

spring.cloud.nacos.config.ext-config[1].data-id=mybatis.yml
spring.cloud.nacos.config.ext-config[1].group=dev
spring.cloud.nacos.config.ext-config[1].refresh=true

参考

  1. Nacos视频
  2. Nacos官网

你可能感兴趣的:(JavaEE,学习,spring,boot,java)