spring cloud nacos_SpringCloud Alibaba系列之Nacos配置中心玩法

欢迎关注头条号:老顾聊技术

精品原创技术分享,知识的组装工

目录

  1. 前言
  2. 新建配置
  3. 改造应用
  4. 历史配置
  5. 重要的概念
  6. 总结

前言

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

新建配置

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

90f8f90e4370018750904cddb42b38d9.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就像报警,如图所示

d7ed59776c9eda53d9d942b11d18fdff.png

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

改造应用

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

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

7ec799600dd8d9e366fb944a2eac708f.png

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

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

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

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

29d15d639415ac5e1c12da91bc7cd848.png

启动应用,请求预警库存

0892dbcf1b48efef629988642fdca117.png

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

6df5cd962241936c7db2d7f4ce43f72c.png

启动应用,发起请求

3d2b262bbcb0684e265e7efc9269f2a9.png

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

26d1fb6969b39f1ea646d99b07a7bcc5.png

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

历史配置

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

2864ad51eacddce713de513e8ef3859f.png5faf8391be6dbfeef5b41ba6778008e0.png

重要的概念

Nacos配置有几个重要的概念

ce2e937257d0b5521a33ed9e49f6899f.png

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

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

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

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

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

a7fb9be3cce0dc837473757772dc1527.png

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

b64b750981845ae8bb443167c9b4ea5e.png

总结

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

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


---End---

最近老顾上传了微服务网关的分享课程,请大家多多支持


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部