zoukankan      html  css  js  c++  java
  • 阿里Nacos-配置-多环境

    多环境的配置隔离是配置中心最基础的一个功能之一。不同的环境配置的值不一样,比如数据库的信息,业务的配置等。

    Spring Boot 多环境配置

    首先我们来回顾下在Spring Boot中用配置文件的方式怎么进行环境的隔离。

    默认我们都会创建一个application.properties配置文件,这个文件是不区分环境的,通用。

    为了区分环境我们可以为每个环境创建一个配置文件,比如;

    • 开发环境
      application-dev.properties
    • 测试环境
      application-test.properties

    在项目部署的时候可以通过 spring.profiles.active=dev 来激活开发环境的配置,通过 spring.profiles.active=test 来激活测试环境的配置。

    Apollo 多环境配置

    既然讲到配置中心,那么我会已目前已经比较成熟的Apollo来进行一个对比,把一些相同的或者不同的点都分析出来,这样大家在选型的时候也能有个参考。

    Apollo的多环境配置是在搭建的时候需要制定好目前支持多少个环境,每个环境下可以分不同的集群,集群这个是可以动态创建的。

    选择不同的环境,进行配置的操作,改动的就是这个环境下的配置。

    在客户端接入的时候,通过指定env来获取对应环境下的配置,还有一点就是Apollo中每个环境的配置都是用DB来隔离的,每个环境都有自己的一个ConfigDB。

    Nacos 多环境配置

    Namespace用于进行租户粒度的配置隔离。不同的命名空间下,可以存在相同的 Group 或 Data ID 的配置。Namespace 的常用场景之一是不同环境的配置的区分隔离,例如开发测试环境和生产环境的资源(如配置、服务)隔离等。

    以上是官方对Nacos Namespace的介绍,如果用过Apollo的同学应该知道,在Apollo中的Namespace是配置文件的概念,跟Nacos的概念定义相差太大了。

    而Nacos中配置文件的定义则是Data ID,在学任何一个框架的时候,首先要搞懂的就是它本身的一些概念。

    在Nacos中要实现多环境的隔离,也就是说我们需要创建多个Namespace。

    Nacos的最后一个菜单,名称为:命名空间,点进去我们可以看到下面的列表,可以去创建你想要的空间:

    public是默认的,我们创建了一个dev环境,这个时候会生成一条数据,我们需要关注的是命名空间ID,为了防止命名空间名称冲突,在保存后会自动生成一个ID,项目中在指定当前环境的时候需要传空间ID,而不是空间名称。

    创建空间后,在配置列表的页面上边我们可以选择不同的空间来进行切换。然后在对应的空间下创建配置。

    最后在我们的项目中,我们是以Spring Boot来进行讲解的,就在application.properties中指定当前项目的空间值即可:

    nacos.config.namespace=334139e6-d700-4a7b-ae0d-5ae30abd94a8
    

    最好的方式是在部署的时候,通过参数传递,如果你直接写在项目中,那么上线的时候是不是还得修改这个namespace为线上的namespace id。

    Apollo在这块是这样设计的,环境可以配置在磁盘中的配置文件中,就相当于一台机器配置一个环境,那么这台机器上的应用就都是这个环境了,环境跟着机器走,不跟项目走。

    猿天地

  • 相关阅读:
    Jmeter请求头中添加了Authorization,但是在结果树里面的headers中显示没有获取到token
    linux(1):VMware虚拟软件下安装centos6.8
    Appium+python自动化环境搭建(小白适用)
    面试题:get和post的本质区别
    用python实现不同格式99乘法表输出
    冒泡排序:从数学逻辑到代码呈现
    给你一句话的需求,如何拆分测试点来设计测试案例
    Linux下基于Xampp的TestLink的安装部署
    linux环境下完成jenkins的环境搭建
    工作中遇到的小问题总结
  • 原文地址:https://www.cnblogs.com/yinjihuan/p/11197077.html
Copyright © 2011-2022 走看看