注:我们这里利用上一篇文章的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:
最后总结
搞定算法,面试字节再不怕,有需要文章中分享的这些二叉树、链表、字符串、栈和队列等等各大面试高频知识点及解析
最后再分享一份终极手撕架构的大礼包(学习笔记):分布式+微服务+开源框架+性能优化
(学习笔记):分布式+微服务+开源框架+性能优化**
[外链图片转存中…(img-WI29babI-1719174581893)]