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

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

最新文章

  1. 基于Ubuntu Hadoop的群集搭建Hive
  2. ASP.NET MVC5 网站开发实践 - 概述
  3. PHP文件和目录操作-----复制、移动、重命名、删除文件
  4. MYSQL-5.5二进制包安装
  5. CSS 公共样式分享
  6. #if 0在代码中的作用
  7. GO简易聊天系统后台源码分享
  8. css页面重构面试题
  9. ASP.NET Web API(一):使用初探,GET和POST数据
  10. SQL Common Sense 碎片一
  11. ASP.NET关于Login控件使用,LoginView 控件,CreateUserWizard 控件
  12. POJ1273(最大流)
  13. [转]winform 自动伸缩控件xpandercontrols 使用说明
  14. Linux下ftp和ssh详解
  15. Oracle AWRDD报告生成和性能分析
  16. 【学习总结】Git学习-参考廖雪峰老师教程五-远程仓库
  17. transformer 源码
  18. Java EE之 Hibernate 5.x版本中SchemaExport的用法
  19. qemu无界面启动,并重定向输出到终端
  20. 【mybatis基础】mybatis开发dao两种方法

热门文章

  1. Kali Linux install "Veil-Evasion"
  2. layui table 表格查询无效问题
  3. Docker运行dotnetcore
  4. TCP安全,SYN Flooding 和 nmap
  5. Docker 常用操作命令
  6. MongoDB 中聚合统计计算--$SUM表达式
  7. Centos手动安装PHP
  8. 表单生成器(Form Builder)之mongodb表单数据查询——统计查询求和
  9. (办公)记事本_Linux常用的目录命令
  10. 卸载/更新HP Client Security Manager失败的解决方案(解决错误1722:软件包存在问题……)