• Nacos配置(配置中心)


    Nacos配置(配置中心)

    Nacos服务配置中心之基础配置

    新建模块

    新建:cloudalibaba-config-nacos-client3377,引入依赖:

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

    配置bootstrap.yml

    Nacos和Spring Cloud config一样,在项目初始化的时候,要保证先从配置中心进行配置拉取,拉取配置之后,才能保证项目的正常启动。

    另外,SpringBoot中配置文件的加载,bootstrap.yml优先于application.yml

    # nacos配置
    server:
      port: 3377
    
    spring:
      application:
        name: nacos-config-client # 构成 Nacos 配置管理 dataId字段的一部分
      cloud:
        nacos:
          discovery:
            server-addr: localhost:8848 #Nacos服务注册中心地址
          config:
            server-addr: localhost:8848 #Nacos作为配置中心地址
            file-extension: yaml #指定yaml格式的配置
    

    配置之后,3377服务将从localhost:8848上读取后缀名为yaml的配置文件。

    配置application.yml

    spring:
      profiles:
        active: dev #表示开发环境
    

    主启动类

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

    服务接口

    @RestController
    @RefreshScope //支持Nacos的动态刷新功能。
    public class ConfigClientController {
    
        @Value("${config.info}")
        private String configInfo;
    
        @GetMapping("/config/info")
        public String getConfigInfo() {
            return configInfo;
        }
    }
    

    dataId的完整格式及新建配置

    在 Nacos Spring Cloud 中,dataId 的完整格式如下:

    ${prefix}-${spring.profiles.active}.${file-extension}
    
    • prefix 默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置。

    • spring.profiles.active 即为当前环境对应的 profile,参考 Spring Boot文档

      注意:当 spring.profiles.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 ${prefix}.${file-extension}

    • file-exetension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 propertiesyaml 类型。

    综上所述,按照我们的配置,最后的dataId结果应该为:

    nacos-config-client-dev.yaml
    

    我们选中配置列表,选择新建配置,DataID就是我们刚刚得到的nacos-config-client-dev.yaml

    新建配置完成之后是这样:

    测试

    运行3377服务,调用接口http://localhost:3377/config/info测试配置读取是否成功。

    另外,它支持动态刷新,当我们修改手动修改配置中心数据时,修改的配置会被动态刷新,自动读取。

    Nacos服务配置中心之分类配置

    命名空间、DataId和Group的关系

    Namespace默认为空串,公共命名空间(public),分组默认是DEFAULT_GROUP。

    Nacos的数据模型如下:

    namespace用于区分部署环境【开发、测试、生产】,创建三个不同的namespace相互隔离。

    Group可以把不同的微服务划分到同一个分组中。

    Service可以包含多个Cluster集群,Nacos默认Cluster是DEFAULT,Cluster是对指定微服务的一个虚拟划分。

    Instance是微服务的实例。

    三种方案的加载配置

    Data Id的方案

    保证命名空间相同,分组相同,只有Data Id不同

    指定spring.profile.active和配置文件的DataId来使不同环境下读取不同的配置。为了演示这个效果,我们总共新建以下两个配置,保证它们命名空间相同,分组相同,只有Data Id不同:

    nacos-config-client-dev.yaml
    nacos-config-client-test.yaml
    

    通过spring.profile.active属性就能进行多环境下配置文件的读取,刚刚已经测试过dev环境,我们测试以下test环境,是否能够读取到:nacos-config-client-test.yaml的配置呢,答案是肯定的,可以访问:http://localhost:3377/config/info测试一下。

    spring:
      profles:
        active: test #表示测试环境
    

    Group方案

    保证命名空间相同,Data Id相同,只有分组不同

    注意,这里我们需要在application.yml中指定profile为info,在bootstrap.yml指定group。

    ## bootstrap.yml
    spring:
      application:
        name: nacos-config-client
      cloud:
        nacos:
          discovery:
            server-addr: localhost:8848 #Nacos服务注册中心地址
          config:
            server-addr: localhost:8848 #Nacos作为配置中心地址
            file-extension: yaml #指定yaml格式的配置
            group: DEV_GROUP
    ## application.yml
    spring:
      profiles:
        active: info
    

    测试方法不用多说,在TEST_GROUP和DEV_GROUP之间切换,再访问接口即可。

    namespace方案

    保证命名空间不同

    新建两个命名空间:dev和test。

    如果需要指定命名空间,则指定yml中的namespace属性即可。

    spring:
      application:
        name: nacos-config-client
      cloud:
        nacos:
          discovery:
            server-addr: localhost:8848 #Nacos服务注册中心地址
          config:
            server-addr: localhost:8848 #Nacos作为配置中心地址
            file-extension: yaml #指定yaml格式的配置
            group: TEST_GROUP
            namespace: b09923bb-b822-4d4c-b75d-c5085b22bbe8
            
    spring:
      profiles:
        active: dev #表示开发环境
    

    将会从命名空间ID为b09923bb-b822-4d4c-b75d-c5085b22bbe8TEST_GROUP组中,读取nacos-config-client-dev的配置文件。

  • 相关阅读:
    修改游标所在的表
    PL/SQL开发中动态SQL的使用方法
    索引学习笔记
    动态SQL和PL/SQL的EXECUTE选项分析
    PL/SQL正确选择游标类型
    oracle字符集
    ext框架下,实现弹出新窗口
    student guide
    plsql与.net异常处理
    ASP.NET 2.0 XML 系列(1): XML介绍
  • 原文地址:https://www.cnblogs.com/chase-h/p/15669532.html
Copyright © 2020-2023  润新知