SpringCloud Alibaba之Nacos配置中心

前言

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

新建配置

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

SpringCloud Alibaba之Nacos配置中心

设置DataId,Data ID它的定义规则是:

{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就像报警,如图所示![]

SpringCloud Alibaba之Nacos配置中心

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

改造应用

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

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

SpringCloud Alibaba之Nacos配置中心

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

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

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

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

SpringCloud Alibaba之Nacos配置中心

启动应用,请求预警库存

SpringCloud Alibaba之Nacos配置中心

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

SpringCloud Alibaba之Nacos配置中心

启动应用,发起请求

SpringCloud Alibaba之Nacos配置中心

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

SpringCloud Alibaba之Nacos配置中心

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

历史配置

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

SpringCloud Alibaba之Nacos配置中心

SpringCloud Alibaba之Nacos配置中心

重要的概念

Nacos配置有几个重要的概念

SpringCloud Alibaba之Nacos配置中心

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

Nacos给的最佳实践表明,最外层的namespace是可以用于区分部署环境的,比如test,dev,prod等。同时,也有一个商业利用价值:

多租户(以后会介绍)。以namespace为单位,给用户开辟使用空间

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

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

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

SpringCloud Alibaba之Nacos配置中心

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

SpringCloud Alibaba之Nacos配置中心

总结

这一篇老顾介绍了nacos基本的配置中心用法,通过上面的测试,可见Nacos做配置中心,

与SpringCloud项目,也可以做到无缝衔接,切换到Nacos成本也很低;项目的其他配置不变,只需要指定配置中心地址,同时将配置文件外部管理

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

你的赞和关注是我继续创作的动力~


分享到:


相關文章: