当前位置: 首页 > news >正文

谷粒商城实战-25-分布式组件-SpringCloud Alibaba-Nacos配置中心-加载多配置集

文章目录

  • 一,拆分配置集
  • 二,配置文件中配置多配置集
    • 1,引用多配置集
    • 2,验证
  • 三,多配置集总结
    • 1,使用场景
    • 2,优先级

这一节介绍如何加载多个配置集。

大多数情况下,我们把配置全部放在一个配置集中即可,但如果配置集非常大,把其拆分为多个配置集更方便管理和维护。

比方说,我们可以把数据库连接相关的信息防止在一个配置集,把Nacos相关的配置放在一个配置集。

一,拆分配置集

把原来配置在一个配置集的配置拆分出来,放在两个配置集。

在这里插入图片描述

二,配置文件中配置多配置集

1,引用多配置集

对于上面两个配置集,要通过下面方式引用。

spring.cloud.nacos.config.ext-config[0].data-id=datasource.yml
spring.cloud.nacos.config.ext-config[0].group=dev
spring.cloud.nacos.config.ext-config[0].refresh=truespring.cloud.nacos.config.ext-config[1].data-id=nacos-discovery.yml
spring.cloud.nacos.config.ext-config[1].group=dev
spring.cloud.nacos.config.ext-config[1].refresh=true

在这里插入图片描述

  • 通过spring.cloud.nacos.config.ext-config[n].data-id的配置来配置多个DataId 的配置。
  • 通过spring.cloud.nacos.config.ext-config[n].group 的配置来指定dataId所在的组,不明确指定的话使用默认的DEFAULT_GROUP
  • 通过spring.cloud.nacos.config.ext-config[n].refresh 的配置来控制该dataId属性变更时,是否动态刷新加载,默认如果不在DEFAULT_GROUP,自动刷新是关闭的,可以通过置为true来手动开启。

需要特别说明的是,使用多配置集时,如果多个配置集有相同的key,比如都配置了端口server.port,它的优先级关系是 spring.cloud.nacos.config.ext-config[n].data-idn的值越大,优先级越高。

2,验证

首先,重启服务,如果不报错,且能注册到注册中心,说明多配置集的nacos配置起作用了。
在这里插入图片描述

其次,访问有数据库逻辑的接口,如果响应正常,说明多配置集的数据库配置起作用了。

http://localhost:7000/coupon/coupon/list

在这里插入图片描述

三,多配置集总结

1,使用场景

多环境配置:通过 Data ID 与 profile 实现多环境配置,例如在 bootstrap.yml 中配置 spring.cloud.nacos.config.ext-config 来加载不同环境的数据库配置文件 。
配置共享:在多个服务之间可能存在一些共享的配置,通过 Nacos 控制台配置共享 DataId,然后在应用的 bootstrap.propertiesbootstrap.yml 中通过 spring.cloud.nacos.config.shared-dataids 加载这些共享配置 。

2,优先级

有个问题,不得不考虑,如果本地有配置,nacos上有默认配置集,还有多配置集。如果这些配置都配置了相同的key,比如server.port,最终生效的配置属于哪个配置集呢?

spring cloud alibaba nacos config 目前提供了三种配置能力从Nacos拉取相关的配置。

  • ① 通过spring.cloud.nacos.config.shared-datadis 支持多个共享data id的配置。
  • ② 通过spring.cloud.nacos.config.ext-config[n].data-id 的方式支持多个扩展Data Id的配置。
  • ③ 通过内部相关规则(应用名、应用名+profile)自动生成的DataId配置。

优先级是:① < ② < ③ 即,先读取③,再读取②,最后读取①。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 华盈生物-PhenoCycler-超多靶标揭示组织空间位置和互作关系
  • centos磁盘空间满了-问题解决
  • 流程管理与商务智能解决方案(62页PPT)
  • 编程社团研究内容怎么写
  • 原生android的内存性能提升方面的测试和优化方案大致设计
  • main.cpp程序执行流程图
  • STM32空闲中断处理串口接受数据
  • springboot企业人力资源管理系统-计算机毕业设计源码29005
  • 【C++课程学习】:new和delete为什么要配套使用,new,delete和malloc,free的比较
  • Django之登录权限系统
  • 【计算机毕业设计】基于Springboot的B2B平台医疗病历交互系统【源码+lw+部署文档】
  • NetCore Grpc拦截
  • java并发编程概述
  • Blender 中导出模型fbx
  • 如何利用python进行统计显著性检验
  • [deviceone开发]-do_Webview的基本示例
  • [笔记] php常见简单功能及函数
  • Android开源项目规范总结
  • crontab执行失败的多种原因
  • input的行数自动增减
  • MyEclipse 8.0 GA 搭建 Struts2 + Spring2 + Hibernate3 (测试)
  • nodejs实现webservice问题总结
  • Otto开发初探——微服务依赖管理新利器
  • PHP变量
  • quasar-framework cnodejs社区
  • vue 配置sass、scss全局变量
  • 动态魔术使用DBMS_SQL
  • 一个普通的 5 年iOS开发者的自我总结,以及5年开发经历和感想!
  • 格斗健身潮牌24KiCK获近千万Pre-A轮融资,用户留存高达9个月 ...
  • ​1:1公有云能力整体输出,腾讯云“七剑”下云端
  • ​ssh-keyscan命令--Linux命令应用大词典729个命令解读
  • ​渐进式Web应用PWA的未来
  • #13 yum、编译安装与sed命令的使用
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • $Django python中使用redis, django中使用(封装了),redis开启事务(管道)
  • (16)UiBot:智能化软件机器人(以头歌抓取课程数据为例)
  • (19)夹钳(用于送货)
  • (C++)栈的链式存储结构(出栈、入栈、判空、遍历、销毁)(数据结构与算法)
  • (day 12)JavaScript学习笔记(数组3)
  • (floyd+补集) poj 3275
  • (附源码)ssm教材管理系统 毕业设计 011229
  • (教学思路 C#之类三)方法参数类型(ref、out、parmas)
  • (十一)手动添加用户和文件的特殊权限
  • (五)网络优化与超参数选择--九五小庞
  • (自适应手机端)响应式服装服饰外贸企业网站模板
  • .NET 常见的偏门问题
  • .net 后台导出excel ,word
  • /proc/vmstat 详解
  • @EnableWebSecurity 注解的用途及适用场景
  • @RequestParam,@RequestBody和@PathVariable 区别
  • @基于大模型的旅游路线推荐方案
  • [20180312]进程管理其中的SQL Server进程占用内存远远大于SQL server内部统计出来的内存...
  • [BZOJ3211]:花神游历各国(小清新线段树)
  • [CareerCup] 13.1 Print Last K Lines 打印最后K行
  • [CISCN2019 华东南赛区]Web4