前言
前几篇介绍了Nacos相关知识,又介绍了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成本也很低;项目的其他配置不变,只需要指定配置中心地址,同时将配置文件外部管理。
下一篇老顾介绍一下多环境下配置如何管理以及隔离,谢谢!!!
万水千山总是情,点个在看行不行