nacos 配置_SpringCloud Alibaba之Nacos配置中心

c232fdf9a5d55e208c2db5e5b0ca2fbe.gif前言

前几篇介绍了Nacos相关知识,又介绍了nacos作为注册中心;今天老顾就分享一些Nacos作为配置中心,如何使用?

新建配置

打开nacos控制台,操作配置列表

e0fb0e058feb98859ee1185256a42096.png

设置DataId,Data ID它的定义规则是:${prefix}-${spring.profile.active}.${file-extension}

1、prefix 默认为 spring.application.name 的值,也可以通过配置项spring.cloud.nacos.config.prefix 来配置。

2、spring.profile.active 即为当前环境对应的 profile,可以通过配置项 spring.profile.active 来配置。

3、file-exetension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 properties 和 yaml 类型。

注意:当 spring.profile.active 为空时,对应的连接符 - 也将不存在

dataId 的拼接格式变成 prefix.prefix.{file-extension}

这里创建Data Id 为goods-consumer.yml的配置文件,其中Group为默认的DEFAULT_GROUP,配置文件的格式也相应的选择yaml,其内添加商品预警库存配置goods.crisis_stock=10,到剩余数为10就像报警,如图所示

e1f4b68e51c4ccbe7cfcca88f5d8408c.png

注:我们这里利用上一篇文章的goods-consumer消费者的项目

改造应用

创建配置文件名为bootstrap.yml,注意是bootstrap,而不是application。原因如下

Nacos同springcloud-config一样,在项目初始化时,要保证先从配置中心进行配置拉取,拉取配置之后,才能保证项目的正常启动。springboot中配置文件的加载是存在优先级顺序的,bootstrap优先级高于application

fa983fa7055732c706f1d00cd5d01c2d.png

必须的配置项spring.application.name,关联nacos的dataID。

spring.cloud.nacos.discovery.server-addr指定注册中心的地址,是用于微服务注册的,如果你不需要注册该服务,也可以去掉该项,并删除discovery依赖

spring.cloud.nacos.config.server-addr指定配置中心的地址,file-extension指定配置中心中配置文件的格式

增加了请求,获取预警库存,跟SpringCloud获取配置一样,使用@Value注解

60c2dc7aedb2a928a637275c0d8bf847.png

启动应用,请求预警库存0904699d8138dca5519dc4667b1c2cf3.png

如果我们想修改配置项的值,但应用不能重新启动;这个也比较简单,只需要在控制器类加入@RefreshScope注解,可以使当前类下的配置支持动态更新。

09619306197a2d70798dab95e627281e.png

启动应用,发起请求0904699d8138dca5519dc4667b1c2cf3.png

在nacos控制台更改配置项的值为30,再请求url如下

839a94305f1effe1863ef6e4ff31c8b7.png

消费服务goods-consumer没有重新启动,值就会改变,达到了热更新。

历史配置

Nacos会记录配置文件的历史版本,保留30天,同时还贴心的提供了一键回滚功能,回滚操作将会触发配置更新。

3c2c24f114aa11a467719ee8524c2674.pngf5c50007a16b356f1cb27e50b22b538c.png

重要的概念

Nacos配置有几个重要的概念

4ace3a57c43aef8fbb8279c4fd4e38f2.png

这张图很重要。表述了namespace、group和service/dataId的包含关系。

Nacos给的最佳实践表明,最外层的namespace是可以用于区分部署环境的,比如test,dev,prod等。同时,也有一个商业利用价值:多租户(以后会介绍)。以namespace为单位,给用户开辟使用空间。

其它两个领域模型不用多解释了,见名知意。其目的也非常明显,就是为了能够逻辑上区分两个目标对象。

默认情况下,namespace=public,group=DEFAULT_GROUP。

明白了这个数据模型后,新建若干个namespace:

7bc8296012ca1b58f57f8ce316c9d12e.png

namespace顺利创建成功后,会在每个一级页面看到由namespace组成的TAB,可以任意切换namespace,对其下的数据进行操作。比如下图的配置列表:

fd2153745b95cc015dfe7fc42a483098.png

总结

这一篇老顾介绍了nacos基本的配置中心用法,通过上面的测试,可见Nacos做配置中心,与SpringCloud项目,也可以做到无缝衔接,切换到Nacos成本也很低;项目的其他配置不变,只需要指定配置中心地址,同时将配置文件外部管理。

下一篇老顾介绍一下多环境下配置如何管理以及隔离,谢谢!!!

17430f9d085a2e6a00118624c8936295.png

万水千山总是情,点个在看行不行569041cf228b490b4039c7cbfc6d627f.png

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

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

相关文章

java用while循环语句输出1-100内的奇数和

java用while循环语句输出1-100内的奇数和 /*** 用while语句,输出0-100所有奇数和*/ public class Test04 {public static void main(String[] args) {int i 1; //定义变量时&#xff0c;尽量不要写成int i1,sum0;int sum 0; //养成一个好习惯while(i<100){if (i%…

如何成为一名与众不同的程序员?|面向思维做事

思维能力是比解决具体问题更重要的能力。问题也许各有不同&#xff0c;但思维方式可以复制和迁移。正所谓:"有道无术&#xff0c;术尚可求也&#xff0c;有术无道&#xff0c;止于术"。 引言 本书的首要目的就是打破“不知道自己不知道”的思维禁锢&#xff0c;把软件…

nofollow标签_nofollow标签是什么?如何使用

nofollow标签是什么可以这样来理解&#xff0c;我们做了一个网页&#xff0c;看到这个网页上有很多个链接&#xff0c;搜索引擎收录这个网页之后&#xff0c;这网页它有一定的权重&#xff0c;它就会来决定分配给这些链接各自的权重。nofollow标签是什么nofollow标签呢就是用来…

java输出1-100内的所有5的倍数,5个一行

java输出1-100内的所有5的倍数&#xff0c;5个一行 /*** 输出1-100内的所有5的倍数&#xff0c;5个一行*/ public class Test05 {public static void main(String[] args) {int i 1;int j 0; //j的初值为0,不是1&#xff1b;while(i<100){if (i%50) {System.out…

java从键盘输入一个数,并将其倒序输出

从键盘输入一个数&#xff0c;并将其倒序输出 import java.util.Scanner;/*** 从键盘上录入任意整数,倒叙输出*/ public class Test06 {public static void main(String[] args) {Scanner sc new Scanner(System.in);System.out.println("请输入一个整数&#xff1a;&qu…

python open函数_精选2个小例子,带你快速入门Python文件处理

阅读本文大概需要7分钟讲完了函数和模块&#xff0c;我们来讲一讲文件的使用,python对数据的处理分两种一种是本地文件的处理&#xff0c;另外一种是通过网络数据处理(也就是爬虫相关的).而本地的数据处理&#xff0c;主要是通过文件的读和写完成~~我们先想一想平时对文件处理一…

Java判断一个整数是否为水仙花数

判断一个整数是否为水仙花数 import java.util.Scanner;/*** 从键盘上输入一个数字&#xff0c;判断是不是水仙花数* <p>* 所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身* <p>* 例如&#xff1a;* 153 1*1*1 5*5*5 3*3*3 ;*/ public c…

mysql with as 用法_Python之图解with语句

在我们使用Python的时候&#xff0c;常使用到如下的代码块:# 文件读取 with open(file, r) as f:# CODE BLOCK ## 梯度计算 with tf.GradientTape() as g:# CODE BLOCK #在很多场景中&#xff0c;使用with语句来可以让我们可以更好地来管理资源和简化代码&#xff0c;它可以看做…

java实现从键盘上输入学生考试的科目和学生的每科分数,输出总分、最高分、最低分、平均分

java实现从键盘上输入学生考试的科目和学生的每科分数&#xff0c;输出总分、最高分、最低分、平均分 import java.util.Scanner;/*** 从键盘上输入学生考试的科目数和学生的每一科分数 输出总分、最高分、最低分、平均分*/ public class Test08 {public static void main(St…

aidl使用_Android进阶之AIDL如何使用自定义类型

如何在 AIDL 中使用自定义类型&#xff0c;具体步骤如下&#xff1a;创建自定义类型声明自定义类型定义与自定义类型相关的业务重写业务实体类远程调用验证 AIDL1. 创建自定义类型自定义类型传输的就是一个实体对象&#xff0c;这个实体类必须实现 Parcelable 接口&#xff0c;…

java判断一个整数是不是素数(质数)

java判断一个整数是不是素数&#xff08;质数&#xff09; /*** 判断一个数是不是素数&#xff08;质数&#xff09;* 质数是指在大于1的自然数中&#xff0c;除了1和它本身以外不再有其他因数的自然数。*/import java.util.Scanner;public class Test09 {public static void …

mysql获取时间戳_服了!阿里Mysql三位封神专家总结1200多页性能优化的千金良方...

MYSQL&#xff08;关系型数据库管理系统&#xff09;MySQL是一个关系型数据库管理系统&#xff0c;由瑞典MySQL AB 公司开发&#xff0c;属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一&#xff0c;在 WEB 应用方面&#xff0c;MySQL是最好的 RDBMS (Relatio…

java输出1-100之间的全部素数

java输出1-100之间的全部素数 public class Test10 {public static void main(String[] args) {int i 2;while (i < 100) {int num 2;boolean flag true;while (num < i) {if (i % num 0) {flag false;}num;}if (flag) {System.out.print(i"\t");}i;}} }…

java生成指定范围的随机数

java生成指定范围的随机数 /*** 如何在程序中生成指定范围的随机数** 生成23-59之间的随机数*/ public class Test11 {public static void main(String[] args) {/*** Math.random() 生成&#xff08;0,1&#xff09;之间的小数&#xff0c;不包括0和1* 所以生成23-59之间的随…

linux cached释放_正点原子Linux第四十一章嵌入式Linux LED驱动开发实验

1)资料下载:点击资料即可下载2)对正点原子Linux感兴趣的同学可以加群讨论&#xff1a;9354467413&#xff09;关注正点原子公众号&#xff0c;获取最新资料更新第四十一章嵌入式Linux LED驱动开发实验上一章我们详细的讲解了字符设备驱动开发步骤&#xff0c;并且用一个虚拟的c…

java模拟回合打怪游戏

java模拟回合打怪游戏 玩家的血值&#xff1a;w 315 怪物的血值&#xff1a;g 500 玩家和怪物互打 玩家每次攻击怪物产生5-8点伤害 怪物每次攻击玩家产生3-5点伤害 采用回合制&#xff0c;一方血量<0游戏结束 用java程序模拟战斗过程&#xff1a;&#xff08;用文字…

cad pu插件下载lisp_CAD自动编号lisp插件下载

点击上方 “CAD自学网 ” → 点击右上角“...” → 点选“设为星标 ★ ”为CAD自学网加上星标&#xff0c;即可及时收到干货啦&#xff01;左下角阅读原文看CAD视频好课推荐&#xff1a;1、CAD2014&#xff1a;点击查看 2、室内&全屋&#xff1a;点击查看 3、CAD2019&am…

java循环的嵌套执行

java循环的嵌套执行 /*** 循环的嵌套执行*/ public class Test14 {public static void main(String[] args) {/*** 外层循环执行一次&#xff0c;内层循环执行多次*/int c 0;int i 1;while(i<10){System.out.println("i的值为&#xff1a;"i);int j 1;while (…

无法启动parallels 缺少必要组件_Parallels 体验 Manjaro 19 (Xfce)

用 Mac Parallels 体验 Manjaro Linux 19个人偏爱Xfce桌面安装时遇到一些问题, 在此快速记录一下启动安装盘时卡住参考资料 Manjaro 19 wont boot with Parallels 151. 按 Crtl Alt F2 进入命令行2. 按提示信息登录3. 安装 video-vesa 驱动sudo mhwd -i pci video-vesa 4. 启动…

java百马百担问题

java百马百担问题 /*** 一百担粮食&#xff0c;用一百匹马一次运走* 大马 一次托4担粮食* 中马 一次托2担粮食* 小马 两匹托1担粮食* 问&#xff0c;三种马各有多少匹* 4d2z1/2x 100*/ public class Test15 {public static void main(String[] args) {//计数变量int i 0;//大…