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

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

阿里Nacos-配置-多环境的更多相关文章

  1. 阿里云配置php环境 ubuntu12.04 32 nginx+php5+mysql

    最近几个客户都订购了阿里云服务器,如何配置服务器就比较重要了 比较喜欢ubuntu的系统,这里以12.04 32位来说 服务器配置采用 nginx+php5+mysql 首先是apt-get的更新 a ...

  2. Nacos集群环境的搭建与配置

    Nacos集群环境的搭建与配置 集群搭建 一.环境: 服务器环境:CENTOS-7.4-64位 三台服务器IP:192.168.102.57:8848,192.168.102.59:8848,192. ...

  3. 阿里云服务器(ECS)从购买到配置NodeJS环境

    本人入门级前端,对服务器不熟悉,这是自己摸索的过程,可能会有错误! 1.购买 阿里云服务器有个活动是新用户前六个月可以免费试用,但是每天早上发放一定的名额,但为了方便,我买了18RMB的捆绑套餐,也是 ...

  4. LNMP笔记:阿里云32位 CentOS 5.4 配置 LNMP环境

    最近比较郁闷的是 WordPress大学 服务器故障,由于诸多原因没及时处理,导致10多天无法访问.倡萌也是刚接触服务器环境配置,维护的确力不从心,没办法排查出错误根源,所以只好重置系统盘,重新配置L ...

  5. 【Nacos】Springboot整合Nacos配置中心(二) 多环境配置

    本篇随笔接上一篇文章:Springboot整合Nacos配置中心(一),主要记录Nacos多环境的配置的方法 Nacos多环境的配置 方法一: 1.在项目中的bootstrap.yaml文件中配置激活 ...

  6. 在阿里云的CentOS环境中安装配置MySQL、JDK、Maven

    Welcome to Alibaba Cloud Elastic Compute Service ! [root@izbp19stm1x1k2io1e7r3tz ~]# rpm -Uvh http:/ ...

  7. Spring Cloud Config、Apollo、Nacos配置中心选型及对比

    Spring Cloud Config.Apollo.Nacos配置中心选型及对比 1.Nacos 1.1 Nacos主要提供以下四大功能 2.Spring Cloud Config 3.Apollo ...

  8. Nacos配置中心交互模型是 push 还是 pull ?你应该这么回答

    本文案例收录在 https://github.com/chengxy-nds/Springboot-Notebook 大家好,我是小富- 对于Nacos大家应该都不太陌生,出身阿里名声在外,能做动态服 ...

  9. nacos配置中心模块详解

    本文已收录 https://github.com/lkxiaolou/lkxiaolou 欢迎star. 配置中心 业务上的配置,功能开关,服务治理上对弱依赖的降级,甚至数据库的密码等,都可能用到动态 ...

  10. CentOS7配置Nodejs环境安装记录

    今天购买了阿里云服务器,系统选的是CentOS7,下面记录下在它上面安装Nodejs环境的过程,本次操作是直接连接的阿里云服务器的管理终端. 1.由于是纯净的环境,先通过以下命令安装nodejs编译及 ...

随机推荐

  1. Oracle数据库小知识点整理

    -- 数据库存储数据 -- 市面上主流的数据库有哪些 -- 甲骨文  oracle   mysql --  IBM  db2  金融 --  微软  sqlserver --这些是关系型数据库. -- ...

  2. 发送RCS 消息摘录相关成功log

    //11-25 16:48:09.612102  2175  2726 I BugleDataModel: PendingMessagesProcessor: process from InsertN ...

  3. CODING 受邀参与 DevOps 标准体系之系统和工具&技术运营标准技术专家研讨会

    2019 年 5 月 24-25 日,国内领先的一站式 DevOps 解决方案供应商 CODING 作为腾讯云的深度合作伙伴,受邀参加在成都举行的由 TC608 云计算标准和开源推进委员会主办,中国信 ...

  4. C#&.Net干货分享- 构建PrinterHelper直接调用打印机相关操作

    namespace Frame.Printer{    /// <summary>    ///     /// </summary>    public class Prin ...

  5. Windows自动执行应用程序或脚本(可以通过写bat文件定时关机等)

    1. Windows每天定时执行某个应用程序 1.1 右键我的电脑选择管理,并选择任务计划程序,如下 演示 --- 1.2 创建基本任务 演示 1.3 Windows每天定时关机设置参数 演示 1. ...

  6. python科学计算和数据分析常用库

    NumPy NumPy最强大的是n维数组,该库还包含基本的线性代数函数.傅立叶变换.随机函数和其他底层语言(如Fortran.C和C++)集成的工具. SciPy SciPy建立在NumPy基础上,它 ...

  7. 谷歌chrome浏览器被毒霸上网导航www.uu114.cn劫持 chrome://version命令行被篡改

    问题描述 win10系统更新, 谷歌chrome浏览器打开后自动跳转到被劫持的网站.我的被hao123劫持, 瞬间对hao123的好感度下降浏览器输入chrome://version 可以看到“命令行 ...

  8. Think in Java 笔记(chapter1-7)

    Content Chapter 1:对象导论 Chapter 2:一切都是对象 Chapter 3:操作符 Chapter 4:控制执行流程 Chapter 5:初始化与清理 Chapter 6:访问 ...

  9. leetcode-二叉树

    树以及常用的算法 树的概念 树(Tree)的基本概念树是由结点或顶点和边组成的(可能是非线性的)且不存在着任何环的一种数据结构.没有结点的树称为空(null或empty)树.一棵非空的树包括一个根结点 ...

  10. pecl安装和卸载示例

    比如安装MongoDB扩展 命令行下输入: [#] /usr/local/php/bin/pecl install mongodb ......嗒吧嗒吧一大堆输出后 Build process com ...