Nacos的多环境配置共享

1. 了解多环境配置共享

众所周知,一个项目从设计到开发到上线和运维,有多种环境(如测试环境,运行环境....)

那如果有些配置,不管在什么环境下,都使用统一参数,这类配置,能不能共享配置?以免同一份配置写好几份,增大了重复度和工作量。

其实微服务启动时,会去Nacos读取多个配置文件,比如:

  • [spring.application.name]-[spring.profiles.active].yaml,例如:userservice-dev.yaml

  • [spring.application.name].yaml,例如:userservice.yaml

[spring.application.name].yaml不包含环境,因此可以被多个环境共享

接下来我们去试试写个案例来测试多环境配置共享

2. Nacos实现多环境配置共享

2.1. 添加一个环境共享配置

在Nacos的配置列表中,添加:

2.2. 在user-service中读取共享配置

在user-service中修改PatternProperties类,添加新的属性:

在user-service服务中,修改UserController,添加一个方法:

2.3. 重启两个userApplication,并且将第二个的配置改成test环境

这样,UserApplication(8081)使用的profile是dev,UserApplication2(8082)使用的profile是test。

访问http://localhost:8081/user/prop,结果:

                

访问http://localhost:8082/user/prop,结果:

        ​​​​​​​        

结果:

两个实例处于不同的环境,dateformat属于dev环境的配置,而envSHaredValue属于共享环境的配置。

所以此时处于dev环境的8081端口的实例的dateformat和envSharedValue都有值。而处于test环境的8082端口的实例的dateformat没有值,而envSharedValue有值。

可以看出来,不管是处于dev环境还是test环境,都读取到了共享环境配置envSharedValue的值

3.配置共享的优先级

当Nacos,本地yml配置文件同时出现相同属性值时,优先级有高低之分:

优先级由高到低:

远程的当前环境配置 > 远程的共享环境配置 > 本地配置

        

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值