Namespace

简介

用于进行租户粒度的配置隔离不同的命名空间下,可以存在相同的 Group 或 Data ID 的配置

配置Namespace

点击nacos的命名空间——点击新建命名空间

开发环境dev测试环境test正式环境prod

Nacos做配置中心和注册中心 nacos如何做配置中心_Nacos做配置中心和注册中心

Nacos做配置中心和注册中心 nacos如何做配置中心_spring_02

 

 

DataID

简介

Data ID 通常用于组织划分系统的配置集在系统中,一个配置文件通常就是一个配置集

一个系统或者应用可以包含多个配置集,每个配置集都可以被一个有意义的名称标识

命名规则

项目名【spring.application.name】-环境【dev/test/prod】.文件后缀【.yaml】

如:cloud-customerDubbo8002-dev.yaml

环境为空时

项目名【spring.application.name】.文件后缀【.yaml】

配置DataID

点击配置管理/配置列表——选择对应的命名空间——点击+

Data ID项目名-dev/test/prod.yaml】——配置格式【选yaml】——配置内容【把配置文件粘贴过去】

Nacos做配置中心和注册中心 nacos如何做配置中心_配置文件_03

Nacos做配置中心和注册中心 nacos如何做配置中心_spring_04

 

 

Group

简介

通过一个有意义的字符串对配置集进行分组,从而区分Data ID相同的配置集

配置Group

在添加DataID时进行分组未填写配置分组的名称则配置分组的名称默认采用DEFAULT_GROUP

架构方案

没有硬性标准

一个项目

根据环境创建不同namespce不考虑分组

多个项目

根据环境创建不同namespce根据分组来区分项目

搭建

pom.xml

<dependencies>
    <!--nacos-config-->
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    </dependency>
    <!--bootstrap-->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-bootstrap</artifactId>
    </dependency>
    <!--nacos-discovery-->
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    </dependency>
    <!--SpringMVC-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <!--Actuator-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    <!--Lombook-->
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
    </dependency>
</dependencies>

bootstrap.yml

server:
  port: 3344
spring:
  application:
    name: cloud-nacosConfigTest3344
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.66.101:8848
      config:
        #服务器地址
        server-addr: 192.168.66.101:8848
        #对应建立的命名空间的UUID【默认为Public命名空间,可以省略不写】
        namespace: 350cb2db-b5aa-4950-9cb1-36a60258d5ce
        #指定文件后缀
        file-extension: yaml
        #文件名【如果没有配置则默认为 ${spring.appliction.name}】
        prefix: ${spring.application.name}
        #指定配置群组【如果是Public命名空间 则可以省略群组配置】
        group: cloudAlibaba
  profiles:
    active: dev

启动类

@SpringBootApplication
@EnableDiscoveryClient
public class nacosConfigTest3344 {
    public static void main(String[] args) {
        SpringApplication.run(nacosConfigTest3344.class,args);
    }
}

测试1-获取配置文件内容

配置中心放一个配置文件【里面是简单的值】,该项目通过bootstrap配置文件连接配置中心获取配置文件中的值并通过访问获取

测试接口

@RestController
@RequestMapping("/nacosConfigTest3344")
@RefreshScope//配置动态刷新
public class NacosConfigTest3344Controller {
    @Value("${config.test}")//在配置中心所读取的文件
    private String config;
    @RequestMapping("/getValue")
    public String getValue() {
        return config;
    }
}

访问测试接口

http://localhost:3344/nacosConfigTest3344/getValue

测试2-使用配置文件

配置中心放一个配置文件【里面是该项目的配置内容】,该项目通过bootstrap配置文件连接配置中心【不配置端口】后使用配置文件