Spring Cloud Alibaba基础教程:Nacos配置的加载规则详解

前情回顾:

上一篇,我们学习了如何在Nacos中创建配置,以及如何使用Spring Cloud Alibaba的Nacos客户端模块来加载配置。在入门例子中,我们只配置了Nacos的地址信息,没有配置任何其他与配置加载相关的其他内容。所以,接下来准备分几篇说说大家问的比较多的一些实际使用的问题或疑问。

加载规则

《Spring Cloud Alibaba基础教程:使用Nacos作为配置中心》一文中,我们的例子完全采用了默认配置完成。所以,一起来看看Spring Cloud Alibaba Nacos模块默认情况下是如何加载配置信息的。

首先,回顾一下,我们在入门例子中,Nacos中创建的配置内容是这样的:

  • Data ID:alibaba-nacos-config-client.properties
  • Group:DEFAULT_GROUP

拆解一下,主要有三个元素,它们与具体应用的配置内容对应关系如下:

  • Data ID中的alibaba-nacos-config-client:对应客户端的配置spring.cloud.nacos.config.prefix,默认值为${spring.application.name},即:服务名
  • Data ID中的properties:对应客户端的配置spring.cloud.nacos.config.file-extension,默认值为properties
  • Group的值DEFAULT_GROUP:对应客户端的配置spring.cloud.nacos.config.group,默认值为DEFAULT_GROUP

在采用默认值的应用要加载的配置规则就是:Data ID=${spring.application.name}.propertiesGroup=DEFAULT_GROUP

下面,我们做一些假设例子,方便大家理解这些配置之间的关系:

例子一:如果我们不想通过服务名来加载,那么可以增加如下配置,就会加载到Data ID=example.propertiesGroup=DEFAULT_GROUP的配置内容了:

spring.cloud.nacos.config.prefix=example

例子二:如果我们想要加载yaml格式的内容,而不是Properties格式的内容,那么可以通过如下配置,实现加载Data ID=example.yamlGroup=DEFAULT_GROUP的配置内容了:

spring.cloud.nacos.config.prefix=example
spring.cloud.nacos.config.file-extension=yaml

例子三:如果我们对配置做了分组管理,那么可以通过如下配置,实现加载Data ID=example.yamlGroup=DEV_GROUP的配置内容了:

spring.cloud.nacos.config.prefix=example
spring.cloud.nacos.config.file-extension=yaml
spring.cloud.nacos.config.group=DEV_GROUP

深入思考

上面,我们具体介绍了在Nacos中添加的各种配置与Spring Cloud应用中客户端配置的对照关系。对于spring.cloud.nacos.config.prefixspring.cloud.nacos.config.file-extension来说,没有太多的花样可以去揣摩,大部分用户默认配置就可以使用,或者通过spring.cloud.nacos.config.file-extension修改下配置格式的后缀。

但是对于spring.cloud.nacos.config.group的配置来说,还是可以派一些特殊的作用,比如:用它来区分不同的产品组下各个应用的配置内容(解决可能应用名冲突的问题)、或者用它来区分不同用途的配置内容、再或者用它来区分不同环境的配置(Nacos下的配置纬度很多,我们可以通过不同的手段来实现多环境的配置,后面会专门写一篇如何实现多环境的配置)等。

如果您对spring.cloud.nacos.config.group还有什么其他妙用,欢迎留言分享您的使用方案。

参考资料

代码示例

本系列教程的代码案例,都可以通过下面的仓库查看:

如果您对这些感兴趣,欢迎star、follow、收藏、转发给予支持!

以下专题教程也许您会有兴趣

原文地址:https://www.cnblogs.com/didispace/p/10336688.html

时间: 2025-01-01 07:49:01

Spring Cloud Alibaba基础教程:Nacos配置的加载规则详解的相关文章

Spring Cloud Alibaba基础教程:Sentinel使用Apollo存储规则

上一篇我们介绍了如何通过Nacos的配置功能来存储限流规则.Apollo是国内用户非常多的配置中心,所以,今天我们继续说说Spring Cloud Alibaba Sentinel中如何将流控规则存储在Apollo中. 使用Apollo存储限流规则 Sentinel自身就支持了多种不同的数据源来持久化规则配置,目前包括以下几种方式: 文件配置 Nacos配置 ZooKeeper配置 Apollo配置 本文我们就来一起动手尝试一下,如何使用Apollo来存储限流规则. 准备工作 下面我们将同时使用

Spring Cloud Alibaba基础教程:Nacos配置的多文件加载与共享配置

前情回顾: <Spring Cloud Alibaba基础教程:使用Nacos实现服务注册与发现> <Spring Cloud Alibaba基础教程:支持的几种服务消费方式> <Spring Cloud Alibaba基础教程:使用Nacos作为配置中心> <Spring Cloud Alibaba基础教程:Nacos配置的加载规则详解> <Spring Cloud Alibaba基础教程:Nacos配置的多环境管理> 对于Nacos作为配置中

Spring Cloud Alibaba基础教程:Nacos的数据持久化

前情回顾: <Spring Cloud Alibaba基础教程:使用Nacos实现服务注册与发现> <Spring Cloud Alibaba基础教程:支持的几种服务消费方式> <Spring Cloud Alibaba基础教程:使用Nacos作为配置中心> <Spring Cloud Alibaba基础教程:Nacos配置的加载规则详解> <Spring Cloud Alibaba基础教程:Nacos配置的多环境管理> <Spring C

Spring Cloud Alibaba基础教程:使用Nacos实现服务注册与发现

自Spring Cloud Alibaba发布第一个Release以来,就备受国内开发者的高度关注.虽然Spring Cloud Alibaba还没能纳入Spring Cloud的主版本管理中,但是凭借阿里中间件团队的背景,还是得到不少团队的支持:同时,由于Spring Cloud Alibaba中的几项主要功能都直指Netflix OSS中的重要组件,而后者最近频繁宣布各组件不在更新新特性,这使得Spring Cloud Alibaba关注度不断飙升,不少开发者或团队也开始小范围试水.笔者对此

Spring Cloud Alibaba基础教程:支持的几种服务消费方式(RestTemplate、WebClient、Feign)

通过<Spring Cloud Alibaba基础教程:使用Nacos实现服务注册与发现>一文的学习,我们已经学会如何使用Nacos来实现服务的注册与发现,同时也介绍如何通过LoadBalancerClient接口来获取某个服务的具体实例,并根据实例信息来发起服务接口消费请求.但是这样的做法需要我们手工的去编写服务选取.链接拼接等繁琐的工作,对于开发人员来说非常的不友好.所以接下来,我们再来看看除此之外,还支持哪些其他的服务消费方式. 使用RestTemplate 在之前的例子中,已经使用过R

Spring Cloud Alibaba基础教程:Sentinel Dashboard同步Apollo存储规则

在之前的两篇教程中我们分别介绍了如何将Sentinel的限流规则存储到Nacos和Apollo中.同时,在文末的思考中,我都指出了这两套整合方案都存在一个不足之处:不论采用什么配置中心,限流规则都只能通过Nacos界面或Apollo界面来完成修改才能得到持久化存储,而在Sentinel Dashboard中修改限流规则虽然可以生效,但是不会被持久化到配置中心.而在这两个配置中心里存储的数据是一个Json格式,当存储的规则越来越多,对该Json配置的可读性与可维护性会变的越来越差.所以,下面我们就

Spring Boot 配置加载顺序详解

使用 Spring Boot 会涉及到各种各样的配置,如开发.测试.线上就至少 3 套配置信息了.Spring Boot 可以轻松的帮助我们使用相同的代码就能使开发.测试.线上环境使用不同的配置. 在 Spring Boot 里面,可以使用以下几种方式来加载配置.本章内容基于 Spring Boot 2.0 进行详解. 1.properties文件: 2.YAML文件: 3.系统环境变量: 4.命令行参数: 等等-- 我们可以在 Spring Beans 里面直接使用这些配置文件中加载的值,如:

Spring Cloud Alibaba(二) 配置中心多项目、多配置文件、分目录实现

介绍 之前Spring Cloud Config基础篇这篇文章介绍了Spring Cloud Config 配置中心基础的实现,今天继续聊下Spring Cloud Config 并结合nacos做服务注册中心,实现多项目.多配置文件.按项目目录划分等功能的配置服务中心. 阅读本篇文章之前,最好要有nacos基础:关于nacos是什么,如何使用,可以参考我的上一篇文章 Spring Cloud Alibaba(一) 如何使用nacos服务注册和发现,或者直接链接到官网教程Nacos 快速开始 本

Spring Cloud Alibaba 实战 之 Nacos 服务注册和发现

服务注册与发现,服务发现主要用于实现各个微服务实例的自动化注册与发现,是微服务治理的核心,学习 Spring Cloud Alibaba,首先要了解框架中的服务注册和发现组件——Nacos. 一.Spring Cloud 服务注册和发现组件 1.Spring Cloud Eureka 闭源风波 在Spring Cloud的子项目中,Spring Cloud Netflix提供了Eureka来实现服务的发现功能,Eureka的服务发现包含两大组件: 服务端发现组件(EurekaServer)和客户