SpringCloud Alibaba之Nacos配置中心配置详解

目录

    • Nacos配置中心数据模型
    • Nacos配置文件加载
    • Nacos配置

Nacos配置中心数据模型

在这里插入图片描述
Nacos 数据模型 Key 由三元组唯一确定,三元组分别是Namespace、Group、DataId,Namespace默认是公共命名空间(public),分组默认是 DEFAULT_GROUP。

Namespace(命名空间)
用于进行租户粒度的配置隔离。不同的命名空间下,可以存在相同的 Group 或 Data ID 的配置。Namespace 的常用场景之一是不同环境的配置的区分隔离,例如开发测试环境和生产环境的资源(如配置、服务)隔离等。

Group(分组)
Nacos 中的一组配置集,通过一个有意义的字符串对配置集进行分组,从而区分 Data ID 相同的配置集。您在 Nacos 上创建一个配置时,如果未填写配置分组的名称,则配置分组的名称默认采用 DEFAULT_GROUP 。配置分组的常见场景:不同的应用或组件使用了相同的配置类型,如 database_url 配置和 MQ_topic 配置。

DataId(配置ID)
Nacos中的某个配置集合的ID,一个系统或者应用可以包含多个配置集,每个配置集都可以被一个有意义的名称标识。

nacos是根据这三个属性来确定一个配置文件

Nacos配置文件加载

在 Nacos 配置中心中,默认情况下,应用会加载以下几个配置文件(按优先级从高到低):

1、Data ID 为 ${spring.application.name}.${spring.cloud.nacos.config.file-extension} 的配置文件:

如果使用了使用 Profile 进行多环境配置,那么优先加载带环境(dev/test/prod)的配置文件

${spring.application.name}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} 的优先级比
${spring.application.name}.${spring.cloud.nacos.config.file-extension} 高,如果两个配置文件有相同的配置,那么会以带环境(spring.profiles.active)的配置文件为准

2、默认分组为 DEFAULT_GROUP 的全局配置文件:
Data ID 为 application.${spring.cloud.nacos.config.file-extension}。这是一个全局的通用配置文件,适用于所有应用。

例如,如果 spring.cloud.nacos.config.file-extension 设置为 properties,则会加载默认分组下的 application.properties 这个配置文件。

3、指定 Group 的全局配置文件:
Data ID 为 application.${spring.cloud.nacos.config.file-extension},Group 可以自定义。这也是一个全局的通用配置文件,适用于所有应用。

例如,如果 spring.cloud.nacos.config.file-extension 设置为 properties,Group 设置为 common,则会加载common分组下的application.properties 配置文件。

Nacos配置

spring.cloud.nacos.config 是 Spring Cloud Alibaba 中提供的一个配置管理模块,用于从 Nacos 中心化配置中心获取应用配置信息,里面可以配置nacos配置中心的各种信息。

下面是 spring.cloud.nacos.config 中常用的配置项及其作用,前缀为spring.cloud.nacos.config:

server-addr: Nacos 服务器地址列表,可以配置多个地址。
namespace: 命名空间 ID,用于区分不同环境和应用。
group: 配置分组,默认为 DEFAULT_GROUP。
username 和 password: 访问 Nacos 服务器所需的用户名和密码,可选。
file-extension: 配置文件格式后缀,默认为 properties。
endpoint: Nacos 服务器的域名解析地址,可选。
access-key 和 secret-key: 阿里云用户访问 Nacos 的 AccessKey 和 SecretKey,可选。
context-path: Nacos 服务器访问路径前缀,可选。
config-long-poll-timeout: 配置拉取长轮询超时时间,单位为毫秒,默认为 30000 毫秒。
refresh-enabled: 用于控制是否启用配置刷新功能,默认为true

下面介绍一下两个引入额外配置文件的属性

shared-configs
在 Nacos 配置中心中,可以使用 shared-configs 配置项来实现共享配置。shared-configs 允许多个应用共享同一个配置文件,这样可以避免重复的配置数据,并方便统一管理和更新。

下面是 shared-configs 的配置示例:

spring.cloud.nacos.config.shared-configs[0].data-id=shared-config
spring.cloud.nacos.config.shared-configs[0].group=DEFAULT_GROUP
spring.cloud.nacos.config.shared-configs[0].refresh=true
spring.cloud.nacos.config.shared-configs[1].data-id=shared-config2
spring.cloud.nacos.config.shared-configs[1].group=DEFAULT_GROUP

配置文件从[0]开始递加

Shared-configs支持三个属性:data-id、group(默认为字符串DEFAULT_GROUP)和refresh(默认为true)。

data-id 是共享配置的 ID,group 是共享配置所属的分组,默认为 DEFAULT_GROUP,refresh为是否刷新配置,默认为true

extension-configs
在 Nacos 配置中心中,可以使用 extension-configs 配置项来加载额外的配置文件。这样可以方便地将不同环境或者不同应用的配置文件进行分离

下面是 extension-configs 的配置示例:

spring.cloud.nacos.config.extension-configs[0].data-id=example-dev.yml
spring.cloud.nacos.config.extension-configs[0].group=DEFAULT_GROUP
spring.cloud.nacos.config.extension-configs[0].file-extension=yaml

extension-configs支持的属性与Shared-configs一样,都是data-id、group和refresh

在实际使用中,shared-configs 和 extension-configs 可以一起使用,以达到更好的管理和维护效果。例如,可以将共享配置文件和环境相关的配置文件分别存放在不同的命名空间或者分组中,并使用相应的配置项来引用这些配置。这样,不同应用可以共享相同的配置,同时又可以根据需要加载不同的环境配置。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/597959.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

『年度总结』逐梦编程之始:我的2023学习回顾与展望

目录 前言 我与Python 我与C语言 第一篇正式博客: 第二篇正式博客(扫雷): 指针学习笔记: C语言学习笔记: 我与数据结构: yuan 这篇博客,我将回顾2023年编程之旅的起点,同时展…

Flowable中6种部署方式

1. addClasspathResource src/main/resources/processes/LeaveProcess.bpmn20.xml Deployment deploy repositoryService.createDeployment().name("请假审批").addClasspathResource("processes/LeaveProcess.bpmn20.xml").deploy();2. addInputStream…

pandas.DataFrame() 数据自动写入Excel

DataFrame 表格数据格式 ; to_excel 写入Excel数据; read_excel 阅读 Excel数据函数 import pandas as pd#df2 pd.DataFrame({neme: [zhangsan, lisi, 3]}) df1 pd.DataFrame({One: [1, 2, 3],name: [zhangsan, lisi, 3]})#One是列明,123是…

分类预测 | Matlab实现RP-CNN-LSTM-Attention递归图优化卷积长短期记忆神经网络注意力机制的数据分类预测【24年新算法】

分类预测 | Matlab实现RP-CNN-LSTM-Attention递归图优化卷积长短期记忆神经网络注意力机制的数据分类预测【24年新算法】 目录 分类预测 | Matlab实现RP-CNN-LSTM-Attention递归图优化卷积长短期记忆神经网络注意力机制的数据分类预测【24年新算法】分类效果基本描述模型描述程…

计算机基础面试题 |09.精选计算机基础面试题

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

面试算法89:房屋偷盗

题目 输入一个数组表示某条街道上的一排房屋内财产的数量。如果这条街道上相邻的两幢房屋被盗就会自动触发报警系统。请计算小偷在这条街道上最多能偷取到多少财产。例如,街道上5幢房屋内的财产用数组[2,3,4,5,3]表示…

http 503 错误

503错误是一种HTTP状态码,表示你请求的网站或服务暂时不可用,通常是因为服务器过载或维护,你可能会看到类似这样的提示:503 Service Unavailable、503 Service Temporarily Unavailable、HTTP Server Error 503、HTTP Error 503 I…

论文管理器

论文管理器 这个论文管理器仍然存在许多漏洞。目前,通过按照一些例行程序操作,它可以正常工作。我将在有时间的时候改进代码,提供详细说明,并添加新功能。当该管理器的代码进行优化后,我会上传到github上。 一个建立…

YACS(上海计算机学会竞赛平台)2023年12月月赛——移动复位

移动复位 内存限制: 256 Mb时间限制: 1000 ms 题目描述 二维平面上有一个点。该点最初所在的位置称之为起点。接下来,该点接受了一串命令,每个命令可以用一个大写字母表示: R 表示该点沿 X 轴坐标正方向移动了一个单位;L 表示…

Java商城 免 费 搭 建:鸿鹄云商实现多种商业模式,VR全景到SAAS,应有尽有

鸿鹄云商 b2b2c产品概述 【b2b2c平台】,以传统电商行业为基石,鸿鹄云商支持“商家入驻平台自营”多运营模式,积极打造“全新市场,全新 模式”企业级b2b2c电商平台,致力干助力各行/互联网创业腾飞并获取更多的收益。从消…

pod进阶:探针和容器钩子

探针* 容器钩子: poststart prestop pod的生命周期开始 Q:docker和k8s的重启策略对比 A: k8s的pod重启策略: Always:正常退出和非正常退出都重启(deployment的yaml文件只能是Always。pod的yaml文件三…

【模拟量采集1.2】电阻信号采集

【模拟量采集1.2】电阻信号采集 1 怎么测?2 测输入电阻电压即转为测模拟电压值,这里需要考虑选用怎样的辅助电阻?3 实际电路分析3.1 在不考虑 VCC-5V 电压的纹波等情况时(理想化此时输入的 VCC 就是稳定的 5V)3.2 若考…

HT81698 内置升压双声道 相互p2p兼容 HT81696

HT81698内置升压的立体声D类音频功率放大器,其支持单节锂电、双节锂电串联、5V、12V等多种输入,升压后的电压提供给功放供电,功放支持双通道立体声BTL输出以及并联PBTL单声道输出; HT81698内置的升压电路,可通过FB脚设置升压值&a…

已解决‘ping‘ 不是内部或外部命令,也不是可运行的程序或批处理文件。”的问题

已解决‘ping‘ 不是内部或外部命令,也不是可运行的程序或批处理文件。”的问题 文章目录 问题介绍 问题分析 解决思路 解决方法 检查并修复环境变量 进入c:\windows\system32再ping 使用系统工具修复系统文件 Q1 - 问题介绍 当您尝试在Windows命令提示符下…

【Spring进阶系列丨第六篇】Spring的Bean管理(基于注解)

文章目录 一、说明二、用于创建对象的2.1、Component注解2.1.1、定义Bean2.1.2、主配置文件配置扫描注解2.1.3、测试2.1.4、Component注解总结 2.2、Controller注解2.3、Service注解2.4、Repository注解 三、用于注入数据的3.1、Autowired注解3.1.1、定义Bean3.1.2、主配置文件…

Linux学习(11)——进程的基本概念

目录 一、程序 1、什么是程序? 二、进程 1、什么是进程? 2、进程具有的特征 2.2进程,线程,协程 2.2.1 进程和线程的区别 2.2.2如何查看一个程序是多线程还是单线程 3、进程使用内存的问题 ①内存泄漏:Memory L…

GO语言笔记1-变量与基本数据类型

变量使用步骤 声明赋值使用 package main import "fmt" func main(){var age int //声明一个 int类型的变量叫ageage 18 //给变量用 赋值fmt.Println(age) //使用变量 输出变量的值 } 编译运行输出变量值 变量的四种使用方式 package main import "fmt&q…

【大数据】Spark学习笔记

初识Spark Spark和Hadoop HadoopSpark起源时间20052009起源地MapReduceUniversity of California Berkeley数据处理引擎BatchBatch编程模型MapReduceResilient distributed Datesets内存管理Disk BasedJVM Managed延迟高中吞吐量中高优化机制手动手动APILow levelhigh level流…

RFID技术在3C家电中的全方位应用

RFID技术在3C家电中的全方位应用 一、RFID技术简述 射频识别(RFID)技术是一种无线通信技术,已经在各行各业得到广泛应用。在3C家电领域,RFID技术的应用正在逐渐增加,为产品追溯、库存管理、防伪验证等方面提供了许多…