Nacos配置共享

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

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

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

1、添加一个环境共享配置

我们在nacos中添加一个userservice.yaml文件:
在这里插入图片描述

2、在user-service中读取共享配置

这是一个属性配置类,专门接收属性,实现热更新的。
在user-service服务中,修改PatternProperties类,读取新添加的属性:
在这里插入图片描述
配置controller类,直接返回这个配置类.
在这里插入图片描述

3、运行两个UserApplication,使用不同的profile

在这里插入图片描述
在这里插入图片描述
这样,UserApplication(8081)使用的profile是dev,UserApplication2(8082)使用的profile是test。

4、结论

启动UserApplication和UserApplication2.
访问http://localhost:8081/user/prop,结果:
在这里插入图片描述
访问http://localhost:8082/user/prop,结果:
在这里插入图片描述
可以看出来,不管是dev,还是test环境,都读取到了envSharedValue这个属性的值。

5、配置共享的优先级

当nacos、服务本地同时出现相同属性时,优先级有高低之分:
在这里插入图片描述


版权声明:本文为weixin_45379261原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。