代码编织梦想

1. 添加依赖

要想从配置中心获取配置添加nacos-confifig的依赖:

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

注意:要使用配置中心就要在bootstrap.yml中来配置,bootstrap.yml配置文件的加载顺序要比application.yml要 优先。

使用application.yml加载不到配置中心了就。

image-20220720120303334

在bootstrap.yml添加配置:

server:
  port: 56020

#配置服务提供方的地址(ip和端口)
provider:
  address: 127.0.0.1:56010

spring:
  application:
    name: nacos-restful-consumer #服务名
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848  #服务发现中心地址
#        namespace: f5eec3c1-4f05-40cd-964a-c8d44f342ab4 #指定命名空间的id
      config:
        server-addr: 127.0.0.1:8848  #配置中心地址
        file-extension: yaml  #指定配置文件的扩展名,配置文件名称根据application.name的名称加扩展名拼装,为nacos-restful-consumer.yaml
        group: DEFAULT_GROUP
       
nacos-restful-provider:
  ribbon:
    NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule

在nacos-restful-consumer工程的controller中增加获取配置的web访问端点/confifigs,通过标准的spring @Value 方式。

@Value("${common.name}")
private String common_name;

@Autowired
ConfigurableApplicationContext applicationContext;

@GetMapping(value = "/configs")
public String getvalue(){
    // return common_name;
    String name =  applicationContext.getEnvironment().getProperty("common.name");
    String addr = applicationContext.getEnvironment().getProperty("common.addr");
    return name+"|"+addr;
}

我们通过nacos控制台更新common.name的配置值,再次访问web端点/confifigs,发现应用程序能够获取到最新

的配置值,说明spring-cloud-starter-alibaba-nacos-confifig 支持配置的动态更新。

注意:可以通过配置spring.cloud.nacos.confifig.refresh.enabled=false来关闭动态刷新

2. ext-config扩展配置

ext:extend,也就是扩展配置

Spring Cloud Alibaba Nacos Confifig可支持自定义 Data Id 的配置。 一个完整的配置案例如下所示:

spring:
  application:
    name: nacos-restful-consumer #服务名
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848  #服务发现中心地址
        namespace: f5eec3c1-4f05-40cd-964a-c8d44f342ab4 #指定命名空间的id
      config:
        server-addr: 127.0.0.1:8848  #配置中心地址
        file-extension: yaml  #指定配置文件的扩展名,配置文件名称根据application.name的名称加扩展名拼装,为nacos-restful-consumer.yaml
        group: DEFAULT_GROUP
        # config external configuration 
        # 1、Data Id group:组名,refresh:动态刷新
        ext-config[0]:
          data-id: ext-config-common01.yaml
          group: COMMON_GROUP
          refresh: true
        ext-config[1]:
          data-id: ext-config-common02.yaml
          group: COMMON_GROUP
          refresh: true

可以看到:

通过 spring.cloud.nacos.config.ext-config[n].data-id 的配置方式来支持多个 Data Id 的配置。

通过 spring.cloud.nacos.config.ext-config[n].group 的配置方式自定义 Data Id 所在的组,不明确配置的话,默认是 DEFAULT_GROUP。

通过 spring.cloud.nacos.config.ext-config[n].refresh 的配置方式来控制该 Data Id 在配置变更时,是否支持应用中可动态刷新, 感知到最新的配置值。默认是不支持的。

注意: spring.cloud.nacos.config.ext-config[n].data-id 的值必须带文件扩展名,文件扩展名既可支持 properties,又可以支持 yaml/yml。 此时 spring.cloud.nacos.config.file-extension 的配置对自定义扩展配置的 Data Id 文件扩展名没有影响。

测试:

配置ext-confifig-common01.yaml:

image-20220720104141686

要写的我放这了,复制就行了,不用跟着图片打了:

ext-config-common01.yaml

COMMON_GROUP

common:
  name: yyl
  addr: jiuzhou

配置ext-confifig-common02.yaml:

image-20220720110217384

编写测试代码:

@Value("${common.name}")
private String common_name;

@Autowired
ConfigurableApplicationContext applicationContext;

@GetMapping(value = "/configs")
public String getvalue(){
      return common_name;
    String name =  applicationContext.getEnvironment().getProperty("common.name");
    String addr = applicationContext.getEnvironment().getProperty("common.addr");
    return name+"|"+addr;
}

重启nacos-restful-consumer工程

访问:http://127.0.0.1:56020/confifigs

image-20220720123445630

通过测试发现:

  • 扩展配置优先级是 spring.cloud.nacos.config.ext-config[n].data-id 其中 n 的值越大,优先级越高。

  • 通过内部相关规则(应用名、扩展名 )自动生成相关的 Data Id 配置的优先级最大。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_45525272/article/details/125889879

springcloud alibaba nacos作为配置中心(六)(1)--------自定义扩展的 data id 配置_jingle_1995的博客-爱代码爱编程_io.springboot.nacos

自定义扩展的 Data Id 配置 目前官方给出了通过两种自定义扩展的 Data Id 配置方法。 1. 通过spring.cloud.nacos.config.ext-config配置。 # config external configuration # 1、Data Id 在默认的组 DEFAULT_GROUP,不支持配置的动态刷新 spring

springcloud alibaba nacos作为配置中心(六)(2)--------自定义扩展的 data id 配置 结合 配置不同环境_jingle_1995的博客-爱代码爱编程

  前面分别介绍了 SpringCloud Alibaba Nacos作为配置中心(四)-----------不同环境下切换配置文件实现开发、测试、生产等不同环境下配置文件切换  SpringCloud Alibaba Nacos作为配置中心(六)(1)--------自定义扩展的 Data Id 配置实现一个工程,多个配置文件的组合 通过这两者相

Nacos服务---配置中心文件优先级-爱代码爱编程

Spring Cloud Alibaba Nacos Config 目前提供了三种配置能力从 Nacos 拉取相关的配置。 A: 通过 spring.cloud.nacos.config.shared-dataids 支持多个共享 Data Id 的配置B: 通过 spring.cloud.nacos.config.ext-config[n].data-

nacos新增自定义配置文件服务启动读取不到-爱代码爱编程

1、配置文件检查 仔细检查nacos上的配置文件格式内容等是否有错误或者格式不正确。 2、服务读取配置是否添加 spring: cloud: nacos: config: extension-configs: - data-id: xxx.yaml group: ${

Spring Cloud Alibaba系列-第7节-Nacos自定义配置文件动态刷新-爱代码爱编程

目录 1. 测试application.properties与bootstrap.properties加载 2. 多文件动态配置 3. 遇到的问题 4. 多文件配置项解释 5. 总结多文件动态配置 观博有逻辑,导航来相助《Spring Cloud Alibaba系列-目录导航》  本章节出现的生产者与消费者的微服务,是以 Spring

nacos dataid修改配置文件_多环境下如何“读取”Nacos中相应的配置-爱代码爱编程

作者:larscheng 来源:博客园 在实际开发中,通常一个系统会准备开发环境、测试环境、预发环境、正式环境 那么如何保证指定环境启动时服务能正确读取到Nacos上相应环境的配置文件呢 本文主要对Nacos作为配置中心时,如何对多环境配置文件进行读取进行论述。 Windows10JDK8SpringCloud:Finchley.RELEAS

Nacos 中 DataId配置信息-爱代码爱编程

Nacos 官网地址 : https://nacos.io/zh-cn/docs/quick-start-spring-cloud.html 例子 : bootstrap.yml server: port: 3377 spring: application: name: nacos-config-client c

Nacos配置管理-爱代码爱编程

工具:nacos 黑马程序员提供教学视频以及资料 Nacos配置管理 理解配置中心1、 什么是配置 应用程序在启动和运动的时候往往需要读取一些配置信息,配置信息上伴随着应用程序的整个生命周期(启动到杀死),比如数据连接参数、启动参数等。 配置主要有以下几个特点:1) 配置是独立于程序的只读变量 配置对于程序是只读的,程序通过读取配置来改变自己的行为,但

Nacos—配置管理-爱代码爱编程

文章目录 一、资源1、代码2、参考资源二、概要1、简介2、主流配置中心对比3、特点三、安装服务1、安装JDK2、安装Maven3、安装Nacos4、Open API方式测试Nacos5、更换MySQL存储数据6、初级入门6.1 发布配置6.2 Nacos客户端获取配置7 可能出现问题7.1 NoClassDefFoundError: slf4j7.

配置中心:基于 Nacos 集中管理应用配置-爱代码爱编程

为什么微服务架构必须部署配置中心 现在微服务开发的主流技术是基于 Spring Boot 进行的,我们都知道 Spring Boot 默认配置文件为 application.yml 或者 application.properties。它保存了应用的主要配置信息,这些配置文件会随着应用发布被打包放入 Jar 文件,随着应用加载并运行。 配置文件分散

Nacos自定义扩展的 Data Id 配置-爱代码爱编程

Spring Cloud Alibaba Nacos Config可支持自定义 Data Id 的配置。 一个完整的配置案例如下所示: 下边我们在service2微服务下配置扩展。 spring: application: name: service2 cloud: nacos: config: ser

Nacos自定义共享 Data Id 配置-爱代码爱编程

为了更加清晰的在多个应用间配置共享的 Data Id ,你可以通过以下的方式来配置: spring: cloud: nacos: config: shared‐dataids: ext‐config‐common01.properties,ext‐config‐common02.properties

nacos自定义扩展dataId时找不到值(已解决)-爱代码爱编程

在项目加载的时候,如果你用@Value注解去获取扩展配置文件时,会报错 这个时候先检查一下自己的bootstrap.yml配置文件是否正确,笔者这里采用的是nacos- serve 1.4.3的版本 server: port: 2222 spring: application: name: yayaya cloud: nac

Nacos配置中心用法详细介绍-爱代码爱编程

        上篇文章介绍了 Nacos 作为注册中心的用法,除此之外,Nacos 还能作为配置中心使用,那这篇文章就介绍下 Nacos 作为配置中心的基本用法,首先我们先了解下为什么需要使用配置中心。 一、为什么需要配置中心: 在没有配置中心之前,传统应用配置的存在以下痛点: (1)采用本地静态配置,无法保证实时性:修改配置不灵活且需要经过较长的

【Nacos学习】五、Nacos共享配置-爱代码爱编程

前言 一个项目中服务数量增加后,配置文件相应增加,多个配置文件中会存在相同的配置,那么我们可以将相同的配置独立出来,作为该项目中各个服务的共享配置文件,每个服务都可以通过Nacos进行共享配置的读取 新建项目 创建名为【nacos-share】的子服务,用来测试Nacos共享配置功能。 pom文件 <?xml version="1

nacos-爱代码爱编程

一、springboot引入nacos 1、进入nacos后台配置内容 注意DataId和Group 2、pom文件添加 <dependency> <grou