spring cloud nacos_SpringCloud Alibaba系列之Nacos配置中心玩法
欢迎关注头条号:老顾聊技术
精品原创技术分享,知识的组装工
目录
- 前言
- 新建配置
- 改造应用
- 历史配置
- 重要的概念
- 总结
前言
前几篇介绍了SpringCloud Alibaba的Nacos相关知识,介绍了nacos作为注册中心SpringCloud Alibaba之Nacos注册中心;今天老顾就分享一些Nacos作为配置中心,如何使用?
新建配置
打开Nacos控制台,操作配置列表

设置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就像报警,如图所示

注:我们这里利用上一篇文章的goods-consumer消费者的项目
改造应用
创建配置文件名为bootstrap.yml,注意是bootstrap,而不是application。原因如下
Nacos同springcloud-config一样,在项目初始化时,要保证先从配置中心进行配置拉取,拉取配置之后,才能保证项目的正常启动。springboot中配置文件的加载是存在优先级顺序的,bootstrap优先级高于application

必须的配置项spring.application.name,关联nacos的dataID。
spring.cloud.nacos.discovery.server-addr指定注册中心的地址,是用于微服务注册的,如果你不需要注册该服务,也可以去掉该项,并删除discovery依赖
spring.cloud.nacos.config.server-addr指定配置中心的地址,file-extension指定配置中心中配置文件的格式
增加了请求,获取预警库存,跟SpringCloud获取配置一样,使用@Value注解

启动应用,请求预警库存

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

启动应用,发起请求

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

消费服务goods-consumer没有重新启动,值就会改变,达到了热更新。
历史配置
Nacos会记录配置文件的历史版本,保留30天,同时还贴心的提供了一键回滚功能,回滚操作将会触发配置更新。


重要的概念
Nacos配置有几个重要的概念

这张图很重要。表述了namespace、group和service/dataId的包含关系。
Nacos给的最佳实践表明,最外层的namespace是可以用于区分部署环境的,比如test,dev,prod等。同时,也有一个商业利用价值:多租户(以后会介绍)。以namespace为单位,给用户开辟使用空间。
其它两个领域模型不用多解释了,见名知意。其目的也非常明显,就是为了能够逻辑上区分两个目标对象。
默认情况下,namespace=public,group=DEFAULT_GROUP。
明白了这个数据模型后,新建若干个namespace:

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

总结
这一篇老顾介绍了nacos基本的配置中心用法,通过上面的测试,可见Nacos做配置中心,与SpringCloud项目,也可以做到无缝衔接,切换到Nacos成本也很低;项目的其他配置不变,只需要指定配置中心地址,同时将配置文件外部管理。
下一篇老顾介绍一下多环境下配置如何管理以及隔离,谢谢!!!
---End---
最近老顾上传了微服务网关的分享课程,请大家多多支持
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
