28 nacos多环境配置共享

1.3.配置共享

其实微服务启动时,会去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类,读取新添加的属性:

java 复制代码
pattern:
  envSharedValue: 环境共享属性值

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

java 复制代码
    @Autowired
    private PatternProperties properties;

    @GetMapping("prop")
    public PatternProperties properties(){
        return properties;
    }

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

修改UserApplication2这个启动项,改变其profile值:

java 复制代码
test

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

启动UserApplication和UserApplication2

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

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

可以看出来,不管是dev,还是test环境,都读取到了envSharedValue这个属性的值。

4)配置共享的优先级

当nacos、服务本地同时出现相同属性时,优先级有高低之分:

服务器profile.yaml>服务器名称.yaml>本地配置

相关推荐
闲宇非鱼6 小时前
微服务到底是技术问题还是管理问题?
java·后端·微服务
潘多编程7 小时前
Spring Boot微服务架构设计与实战
spring boot·后端·微服务
黄俊懿11 小时前
【深入理解SpringCloud微服务】手写实现各种限流算法——固定时间窗、滑动时间窗、令牌桶算法、漏桶算法
java·后端·算法·spring cloud·微服务·架构
弥琉撒到我17 小时前
微服务swagger解析部署使用全流程
java·微服务·架构·swagger
王彬泽1 天前
【微服务】组件、基础工程构建(day2)
微服务
Cikiss1 天前
微服务实战——SpringCache 整合 Redis
java·redis·后端·微服务
Cikiss1 天前
微服务实战——平台属性
java·数据库·后端·微服务
攸攸太上1 天前
JMeter学习
java·后端·学习·jmeter·微服务
妍妍的宝贝1 天前
k8s 中微服务之 MetailLB 搭配 ingress-nginx 实现七层负载
nginx·微服务·kubernetes
架构师吕师傅1 天前
性能优化实战(三):缓存为王-面向缓存的设计
后端·微服务·架构