• Spring Cloud Alibaba:Nacos配置中心


    搭建环境

    pom依赖

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

    bootstrap.yml

    server:
      port: 3377
    
    spring:
      application:
        name: nacos-config-client
      cloud:
        nacos:
          discovery:
            server-addr: 192.168.10.137:8848
          config:
            server-addr: 192.168.10.137:8848
            file-extension: yaml
    

    application.yml

    spring:
      profiles:
        active: dev
    

    主启动类和controller

    @SpringBootApplication
    @EnableDiscoveryClient
    public class NacosConfigMain3377 {
        public static void main(String[] args) {
            SpringApplication.run(NacosConfigMain3377.class,args);
        }
    }
    @RestController
    @RefreshScope//支持nacos动态刷新功能
    public class ConfigClientController {
        @Value("${config.info}")
        private String configInfo;
    
        @GetMapping("/config/info")
        public String getConfigInfo(){
            return configInfo;
        }
    }
    

    配置dataid公式:${spring.application.name}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
    在nacos中新建一个配置

    启动,调用controller,发现可以获取配置,并且当配置中心的配置修改后,支持动态刷新配置功能。

    namespace-group-dataid

    支持自定义 namespace 的配置
    首先看一下 Nacos 的 Namespace 的概念, Nacos 概念

    用于进行租户粒度的配置隔离。不同的命名空间下,可以存在相同的 Group 或 Data ID 的配置。Namespace 的常用场景之一是不同环境的配置的区分隔离,例如开发测试环境和生产环境的资源(如配置、服务)隔离等。
    在没有明确指定 ${spring.cloud.nacos.config.namespace} 配置的情况下, 默认使用的是 Nacos 上 Public 这个namespae。如果需要使用自定义的命名空间,可以通过以下配置来实现:

    spring.cloud.nacos.config.namespace=b3404bc0-d7dc-4855-b519-570ed34b62d7
    该配置必须放在 bootstrap.properties 文件中。此外 spring.cloud.nacos.config.namespace 的值是 namespace 对应的 id,id 值可以在 Nacos 的控制台获取。并且在添加配置时注意不要选择其他的 namespae,否则将会导致读取不到正确的配置。
    支持自定义 Group 的配置
    在没有明确指定 ${spring.cloud.nacos.config.group} 配置的情况下, 默认使用的是 DEFAULT_GROUP 。如果需要自定义自己的 Group,可以通过以下配置来实现:
    spring.cloud.nacos.config.group=DEVELOP_GROUP
    该配置必须放在 bootstrap.properties 文件中。并且在添加配置时 Group 的值一定要和 spring.cloud.nacos.config.group 的配置值一致。
    支持自定义扩展的 Data Id 配置
    Spring Cloud Alibaba Nacos Config 从 0.2.1 版本后,可支持自定义 Data Id 的配置。关于这部分详细的设计可参考 这里。 一个完整的配置案例如下所示:
    spring.application.name=opensource-service-provider
    spring.cloud.nacos.config.server-addr=127.0.0.1:8848

    config external configuration

    1、Data Id 在默认的组 DEFAULT_GROUP,不支持配置的动态刷新

    spring.cloud.nacos.config.extension-configs[0].data-id=ext-config-common01.properties

    2、Data Id 不在默认的组,不支持动态刷新

    spring.cloud.nacos.config.extension-configs[1].data-id=ext-config-common02.properties
    spring.cloud.nacos.config.extension-configs[1].group=GLOBALE_GROUP

    3、Data Id 既不在默认的组,也支持动态刷新

    spring.cloud.nacos.config.extension-configs[2].data-id=ext-config-common03.properties
    spring.cloud.nacos.config.extension-configs[2].group=REFRESH_GROUP
    spring.cloud.nacos.config.extension-configs[2].refresh=true
    可以看到:
    通过 spring.cloud.nacos.config.extension-configs[n].data-id 的配置方式来支持多个 Data Id 的配置。
    通过 spring.cloud.nacos.config.extension-configs[n].group 的配置方式自定义 Data Id 所在的组,不明确配置的话,默认是 DEFAULT_GROUP。
    通过 spring.cloud.nacos.config.extension-configs[n].refresh 的配置方式来控制该 Data Id 在配置变更时,是否支持应用中可动态刷新, 感知到最新的配置值。默认是不支持的。
    多个 Data Id 同时配置时,他的优先级关系是 spring.cloud.nacos.config.extension-configs[n].data-id 其中 n 的值越大,优先级越高。
    spring.cloud.nacos.config.extension-configs[n].data-id 的值必须带文件扩展名,文件扩展名既可支持 properties,又可以支持 yaml/yml。 此时 spring.cloud.nacos.config.file-extension 的配置对自定义扩展配置的 Data Id 文件扩展名没有影响。
    通过自定义扩展的 Data Id 配置,既可以解决多个应用间配置共享的问题,又可以支持一个应用有多个配置文件。
    为了更加清晰的在多个应用间配置共享的 Data Id ,你可以通过以下的方式来配置:
    配置支持共享的 Data Id
    spring.cloud.nacos.config.shared-configs[0].data-id=common.yaml
    配置 Data Id 所在分组,缺省默认 DEFAULT_GROUP
    spring.cloud.nacos.config.shared-configs[0].group=GROUP_APP1
    配置Data Id 在配置变更时,是否动态刷新,缺省默认 false
    spring.cloud.nacos.config.shared-configs[0].refresh=true
    可以看到:
    通过 spring.cloud.nacos.config.shared-configs[n].data-id 来支持多个共享 Data Id 的配置。
    通过 spring.cloud.nacos.config.shared-configs[n].group 来配置自定义 Data Id 所在的组,不明确配置的话,默认是 DEFAULT_GROUP。
    通过 spring.cloud.nacos.config.shared-configs[n].refresh 来控制该Data Id在配置变更时,是否支持应用中动态刷新,默认false。

  • 相关阅读:
    Linux运维就业技术指导(九)期末架构考核
    Linux运维就业技术指导(八):期中架构考核
    Linux就业技术指导(七):游戏类运维重点流程解析
    Linux就业技术指导(五):Linux运维核心管理命令详解
    Linux就业技术指导(六):天津IDC机房项目实践
    Linux就业技术指导(四):企业CDN缓存加速原理解密
    Linux就业技术指导(三):IDC机房解密
    Linux就业技术指导(一):简历撰写及面试筹备要领
    Linux就业技术指导(二):简历项目经验示例
    Python运维开发基础10-函数基础
  • 原文地址:https://www.cnblogs.com/wwjj4811/p/13633527.html
Copyright © 2020-2023  润新知