阿里Nacos-配置-多环境

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

Spring Boot 多环境配置

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

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

为了区分环境咱们能够为每一个环境建立一个配置文件,好比;app

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

在项目部署的时候能够经过 spring.profiles.active=dev 来激活开发环境的配置,经过 spring.profiles.active=test 来激活测试环境的配置。框架

Apollo 多环境配置

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

Apollo的多环境配置是在搭建的时候须要制定好目前支持多少个环境,每一个环境下能够分不一样的集群,集群这个是能够动态建立的。spa

选择不一样的环境,进行配置的操做,改动的就是这个环境下的配置。设计

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

Nacos 多环境配置

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

以上是官方对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在这块是这样设计的,环境能够配置在磁盘中的配置文件中,就至关于一台机器配置一个环境,那么这台机器上的应用就都是这个环境了,环境跟着机器走,不跟项目走。

猿天地
相关文章
相关标签/搜索