Nacos配置管理之多环境共享

news2024/7/4 5:04:58

多环境配置共享

微服务启动时会从nacos读取多个配置文件:

1、[spring.application.name]-[spring.profiles.active].yaml 例如:userservice-dev.yaml

【服务名】-【环境】.yaml

2、 [spring.application.name].yaml  【服务名】.yaml 例如:userservice.yaml

无论profile(环境)如何变化,[spring.application.name].yaml 这个文件一定会被加载、一定会被读取,因此多环境共享的配置可以写入这个文件。

 

 读取Nacos配置的userservice.yaml文件

前面学过读取Nacos配置文件方式二,通过@ConfigurationProperties注解读取; 

@Component
@Data
@ConfigurationProperties(prefix = "pattern")
public class PatternProperties {
    private String dateformat;
    private String envSharedvalue;
}
@RestController
@RequestMapping("user")
public class UserController {

    @Autowired
    private PatternProperties properties;

    @GetMapping("/prop")
    public PatternProperties properties(){
        return properties;
    }
}

 微服务是如何知道要读取Nacos中配置的userservice.yaml文件你呢?

 通过之前的学习可以知道,bootstrap.yml文件是会优先被Nacos读取的,如图所示,我们在bootstrap.yml里面配置了 Nacos地址、微服务名、文件后缀名,由这三部分即可组成 userservice.yaml 文件配置名,也就是你在Nacos配置中心配置的名字,Nacos就是通过这种方式找到需要读取的配置文件的。

根据图片配置,可以得知 userservice-dev.yaml 配置文件也会被读取到,但是 userservice.yaml配置文件是一定会被读取的。

 多环境配置读取测试

 端口号为8081的userservice微服务激活dev环境,端口号8082的激活test环境;分别启动这两个微服务,那么激活环境为dev端口号为8081的服务不仅可以读取到日期格式属性dateformat、也可以读取到envSharedvalue属性,而端口号8082由于激活的是测试环境test,那么只能读取共享配置userservice.yaml里面的 envSharedvalue 属性;

 测试结果:服务8082只能读取到共享属性envSharedvalue的值。

 端口号8081的服务由于激活的是dev环境,所以可以读取到 userservice-dev.yaml配置文件的配置,又由于 userservice.yaml 共享文件的配置是一定可以被服务读取到的,那么共享文件中的envSharedvalue属性也会被读取;两个属性都有值;

 多种配置的优先级

 同一种属性名的值在本地配置文件中配置(也就是application.yml),在Nacos中也配置,在Nacos中配置多环境共享配置 userservice.yaml,还有非多环境共享配置 userservice-dev.yaml,那么获取这个属性值的优先级是什么呢?以哪个配置文件中的值为准呢?

优先级如下:

服务名-profile.yaml > 服务名称.yaml > 本地配置;

userservice-dev.yaml > 多环境共享配置 userservice.yaml > application.yml

总结

 

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

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

相关文章

kube-proxy模式详解

kubernetes里kube-proxy支持三种模式,在v1.8之前我们使用的是iptables 以及 userspace两种模式,在kubernetes 1.8之后引入了ipvs模式,并且在v1.11中正式使用,其中iptables和ipvs都是内核态也就是基于netfilter,只有use…

仿写BitMap源码

bitmap的作用: 用来校验海量数字中某一个数字有没有出现过,海量数据中某一个数据有没有出现过 做一个长的比特数组,比特数组就会出现索引(0n),所有0n之间的数,比如123,就把所有比特数…

R语言画ROC曲线总结

在本文中,我描述了如何在CRAN中搜索用于绘制ROC曲线的包,并重点介绍了六个有用的包。 我使用pkgsearch来搜索CRAN并查看其中的内容。该package_search()函数将文本字符串作为输入,并使用基本的文本挖掘技术来搜索所有CRAN。 经过一番尝试和…

【Clickhouse】Clickhouse 精确去重计数性能测试

1.概述 4亿多的数据集上,去重计算出6千万整形数值, 非精确去重函数: uniq、 uniqHLL12、 uniqCombined 精确去重函数: uniqExact、 groupBitmap 结论: 整形值精确去重场景, groupBitmap 比 uniqExact至少快 2x+groupBitmap仅支持整形值去重, uniqExact支持任意类型去重…

中英文说明书丨艾美捷CD8α体内抗体介绍

艾美捷CD8α体内抗体英文说明: ICH1045 is up to 30% cheaper for academia & non-profits and up to 55% cheaper for industry than the equivalent product from Bio X Cell (BE0061). ICH1045UL is up to 31% cheaper for academia and up to 56% cheaper …

javaweb-Servlet的使用

xml设置 创建项目需要勾选下图的创建xml(适用于3.0以下版本,3.0以上的可以跳过使用下面的注解开发) 创建完项目后,找到web—WEB-INF—web.xml配置以下代码 <?xml version"1.0" encoding"UTF-8"?> <web-app xmlns"http://xmlns.jcp.org/…

隔离系列 宽电压输入 正负高电压稳压输出 高压稳压电源模块

特点 效率高达 80%以上1*2英寸标准封装电源正负双输出稳压输出工作温度: -40℃~85℃阻燃封装&#xff0c;满足UL94-V0 要求温度特性好可直接焊在PCB 上应用 HRA 1~40W系列模块电源是一种DC-DC升压变换器。该模块电源的输入电压分为&#xff1a;4.5~9V、9~18V、及18~36VDC标准&…

使用SAS,Stata,HLM,R,SPSS和Mplus的多层线性模型HLM

简介 最近我们被客户要求撰写关于多层线性模型的研究报告&#xff0c;包括一些图形和统计输出。本文档用于比较六个不同统计软件程序&#xff08;SAS&#xff0c;Stata&#xff0c;HLM&#xff0c;R&#xff0c;SPSS和Mplus&#xff09;的两级多层&#xff08;也称分层或层次&…

8年软件测试开发薪水被应届生倒挂,32岁的我裸辞了...

今年 32 岁&#xff0c;我从公司离职了&#xff0c;是裸辞。 前段时间&#xff0c;我有一件事情一直憋在心里很难受&#xff0c;想了很久也没找到合适的人倾诉&#xff0c;就借着今天写出来。 我一个十几年测试经验&#xff0c;八年 软件测试 经验的职场老人&#xff0c;我慢…

Docker运行MySQL容器

目录 一、宿主机与容器之间的文件拷贝 1.利用MySQL镜像安装MySQL服务 2.容器中怎么上传项目&#xff08;文件&#xff09; 3.从容器中拷贝文件到宿主机 4.从宿主机拷贝文件到容器 二、数据卷 三、数据卷容器 四、Dockerfile 本次目标&#xff1a; 数据卷Dockerfile …

C++初阶作业 Stackqueue 作业题一

作者&#xff1a;小萌新 专栏&#xff1a;C初阶 作者简介&#xff1a;大二学生 希望能和大家一起进步&#xff01; 本篇博客简介&#xff1a;实现几道Stack和queue的作业题 Stack queue作业题最小栈问题栈的压入弹出序列逆波兰表达式问题总结最小栈问题 它问题的题目描述是这…

Kafka极客 - 13 Kafka 中的高水位和 Leader Epoch 机制

文章目录1. 什么是高水位&#xff1f;2. 高水位的作用3. 高水位更新机制1. Leader 副本高水位更新机制2. Follower 副本高水位更新机制4. 副本同步机制解析5. Leader Epoch你可能听说过高水位&#xff08;High Watermark&#xff09;&#xff0c;但不一定耳闻过 Leader Epoch。…

【雷丰阳-谷粒商城 】【分布式基础篇-全栈开发篇】【03】前端开发基础知识:ES6_Vue

持续学习&持续更新中… 学习态度&#xff1a;守破离 【雷丰阳-谷粒商城 】【分布式基础篇-全栈开发篇】【03】前端技术栈类比ES6简介什么是ECMAScriptES6新特性let、const解构表达式字符串扩展字符串模板函数优化对象优化map、reducePromise&#xff08;异步编排&#xff…

第十四届蓝桥杯集训——JavaC组第十一篇——switch

第十四届蓝桥杯集训——JavaC组第十一篇——switch 目录 第十四届蓝桥杯集训——JavaC组第十一篇——switch swtich概述 switch语法 default作用 switch基础示例&#xff1a; String类型switch示例 switch枚举判断 巧用break 石头剪刀布 测试代码&#xff1a; swtich概…

安卓计算机毕设——无线点餐系统

1 绪 论 1.1 研究的背景及意义 民以食为天。餐饮业是一种个性化、多样化的服务产业&#xff0c;餐饮传统的点菜方式是纯人工操作&#xff0c;由服务员记录顾客点的菜&#xff0c;在具体工作中容易出现以下问题&#xff1a;手写单据字迹潦草从而导致上错菜、传菜分单出错现象严…

pytest学习和使用-fixture如何使用?

1 引入 和setup、teardown的区别是&#xff1a;fixture可自定义测试用例的前置条件&#xff1b; setup、teardown针对整个脚本全局生效&#xff0c;可实现在执行用例前后加入一些操作&#xff1b; setup、teardown不能做到灵活使用&#xff0c;比如用例A先登陆&#xff0c;用…

【毕业设计】微信失物招领小程序 失物招领微信小程序

一、前言 生活中&#xff0c;很多人都有丢失物品的经历&#xff0c;随着互联网的快速发展&#xff0c;你可以在各种地方信息平台来发布丢失说明。但是这些信息往往会随着平台的发布量被刷掉&#xff0c;想要找回丢失的东西还是很困难的。只需要打开微信即可使用失物招领小程序…

软件测试丨基于Junit4,利用xUnit框架让你的测试用例可维护性大幅提升

xUnit是一系列测试框架的统称&#xff0c;最开始来源于一个叫做Smalltalk的SUnit框架。 现在各种面向对象的语言&#xff0c;如Java、Python的鼻祖就是Smalltalk&#xff0c;后来这些语言都借助了Sunit框架的理念&#xff0c;有很多通用的规范和特征&#xff0c;也就统称为xUn…

C. Hossam and Trainees(欧拉筛 + 分解质因数)

Problem - C - Codeforces 胡萨姆有n名学员。他给第i个学员分配了一个号码。 如果存在一个整数x (x≥2)&#xff0c;使得x能整除ai, x能整除aj&#xff0c;则第i个和第j个(i≠j)练习者被称为成功练习者。 胡萨姆想知道是否有一对成功的学员。 胡萨姆现在很累了&#xff0c;所以…

推荐一个平台,JNPF开发平台3.4.5版本更新升级,企业级的低代码开发平台

JNPF快速开发框架是一个可复用的设计构件&#xff0c;使用JNPF的编程人员可以在一个通用功能已经实现的基础上开始具体的系统开发&#xff1b; 简单来讲&#xff0c;软件开发框架可以理解为我们盖楼房时&#xff0c;用梁柱子承重墙做起来的钢筋混凝土结构框架。而实现的软件功…