日志输出到文件nacos 配置_SpringCloud Alibaba之Nacos共享配置、灰度配置

前几篇介绍了Nacos的配置中心的特性,今天介绍一下Nacos的高级特性,也是比较实用的特性,共享配置和灰度配置。

灰度配置

灰度配置指的是指定部分客户端IP进行新配置的下发,其余客户端配置保持不变,用以验证新配置对客户端的影响,保证配置的平稳发布。灰度配置是生产环境中一个比较重要的功能,对于保证生产环境的稳定性非常重要。在1.1.0中,Nacos 支持了以IP为粒度的灰度配置,具体使用步骤如下:

1、 在配置列表页面,点击某个配置的“编辑配置”按钮

43392de0423c05c72c4fe2007e758b4f.png

2、勾选“Beta发布”,在文本框里填入要下发配置的IP,多个IP用逗号分隔

e47430546a56100e966184f39f70f32f.png

3、 修改配置内容,点击“发布Beta”按钮,即可完成灰度配置的发布

4、 点击“发布Beta”后,“发布Beta”按钮变灰,编辑配置会出现2个Tab,正式和BETA;在验证完业务后,此时可以有两种选择“停止Beta”或者“发布”。

A、“停止Beta”表示取消停止灰度发布,当前灰度发布配置的IP列表和配置内容都会删除,页面回到正常发布的样式。

B、“发布”表示将灰度配置在所有客户端生效,之前的配置也会被覆盖,同时页面回到正常发布的样式。

037b9415c6e6eaf5021f48a213bacfd3.png

5270a43ca78ee83d0d950f0cedc0e91a.png

共享配置场景

一个系统中微服务数量增加后,配置文件相应增加,多个配置文件中会存在相同的配置,那么我们可以将相同的配置独立出来,作为该系统中各个服务的共享配置文件,每个服务都可以通过Nacos进行共享配置的读取。

我们已经知道Spring应用对Nacos中配置内容的对应关系是通过三个参数控制的:

1、spring.cloud.nacos.config.prefix
2、spring.cloud.nacos.config.file-extension
3、spring.cloud.nacos.config.group

默认情况下,会加载DataID=${spring.application.name}.properties,Group=DEFAULT_GROUP的配置。

假设现在有这样的一个需求:现在有两个微服务,都涉及到库存的预警值这项配置,希望能够做到统一的配置管理。所以,我们希望可以将预警值放在独立的配置文件stock.yml文件中,要达到这种效果,可以采取以下两步:

第一步:在Nacos中创建Data ID=stock.yml,Group=DEFAULT_GROUP配置内容

961b3618dfe8351339fc90979fc46063.png

第二步:在两个微服务应用中通过使用spring.cloud.nacos.config.ext-config参数来配置要加载的配置内容,比如:

94f0cf6ad0db7afaae541cf3e9996423.png

aa9fb8a696fa852ea0dc1dc4d1996a31.png

共享配置可以看到,spring.cloud.nacos.config.ext-config配置是一个数组List类型。

每个配置中包含三个参数:data-id、group,refresh;data_id,group与Nacos中创建的配置相互对应,refresh参数控制这个配置文件中的内容时候支持自动刷新。

Nacos还提供了另外一个便捷的配置方式,比如下面的设置与上面使用的配置内容是等价的:

spring.cloud.nacos.config.shared-dataids=stock.yml

spring.cloud.nacos.config.refreshable-dataids=stock.yml

配置加载的优先级spring.cloud.nacos.config.shared-dataids参数用来配置多个共享配置的Data Id,多个的时候用用逗号分隔

spring.cloud.nacos.config.refreshable-dataids参数用来定义哪些共享配置的Data Id在配置变化时,应用中可以动态刷新,多个Data Id之间用逗号隔开。如果没有明确配置,默认情况下所有共享配置都不支持动态刷新。

测试

相应的业务代码没有什么变化,利用@Value注解获取配置值

e52d5c42eb0f71190f4c67beeb920d22.png

34c5f4b0496dacd34dbbfecfee3a6e48.png

通过请求消费端的/goods/stock和/goods/12(这个会调用生产端应用)都可以获取库存预警值

547c0b338701875dec7a710c43b70d7d.png

4a85582a68983730b0b516f8f18ee1de.png

加载顺序

当我们加载多个配置的时候,如果存在相同的key时,我们需要深入了解配置加载的优先级关系。

在使用Nacos配置的时候,主要有以下三类配置:

A: 通过spring.cloud.nacos.config.shared-dataids定义的共享配置
B: 通过spring.cloud.nacos.config.ext-config[n]定义的加载配置
C: 通过内部规则(spring.cloud.nacos.config.prefix、spring.cloud.nacos.config.file-extension、spring.cloud.nacos.config.group这几个参数)拼接出来的配置

加载的配置原则是会覆盖之前加载的配置,根据启动日志,我们观察可以看出优先级关系是:A < B < C

总结

Nacos共享配置的两种实现方式,两种方式针对不同的场景:

1、shared-dataids方式:适合于共享配置文件与项目默认配置文件处于相同Group时
2、ext-config方式:它可以由开发者自定义要读取的共享配置文件的DataId、Group、refresh属性,这样刚好解决了shared-dataids存在的局限性。

Nacos灰度发布现在只支持IP,将来也许会增加别的灰度方式。今天就介绍到这里,谢谢!!!

喜欢本文的话可以关注我们的官方账号,第一时间获取资讯。
你的关注是对我们更新最大的动力哦~
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值