Nacos环境隔离

Nacos管理台有一个单独的菜单“命名空间”,里面默认存在一个名为“public”的默认命名空间,我们在使用Nacos时不管是作为注册中心还是配置中心,都是作用在该命名空间之下的,那么这个命名空间到底起着什么作用呢?其实Nacos基于Namespace帮助用户逻辑隔离多个命名空间,这可以帮助用户更好的管理测试、预发、生产等多环境服务和配置,让每个环境的同一个配置(如数据库数据源)可以定义不同的值。


我们明白了namespace是为了起到了环境隔离作用而出现的,其实不光是namespace,group和Data Id也可以起到环境隔离的作用。Data Id的值为:${spring.cloud.nacos.config.prefix}- ${spring.profile.active}. ${spring.cloud.nacos.config.file-extension},而spring.profiles.active是可以区分不同环境的。所以如何合理使用namespace、group和Data Id去区分不同的环境,是我们在使用Nacos时必须要仔细考虑的一个问题。

经典案例

Nacos是阿里巴巴工程师编写的,是运用在大规模平台项目当中的,所以站在他们的角度思考问题会让我们更加理解他们这样设计环境隔离的目的。假设我们现在要做一个大平台项目,大平台项目会为各个企业提供服务支持,同时不同的企业还存在不同的子项目,并且每个子项目都需要有多个配置环境,如下图:

面对这种需求时合理使用Nacos的环境隔离策略更够让我们节省不少的时间成本。

  • 对于不同企业这一层我们可以使用namespace进行区分。
  • 对于企业下面不同子项目我们可以使用group进行区分。
  • 对于每个子项目不同的环境我们可以使用Data Id进行区分。

根据上面的环境隔离策略,假如我们需要添加一个B企业下面的B子项目的nacos-provider模块的测试环境配置,那么可以这样配置:

第一步:添加命名空间B企业。

第二步:配置列表添加配置文件,group代表项目,Data Id代表模块以及不同的运行环境。


第三步:修改nacos-provider模块指定namespace、group和active。

第四步:运行nacos-provider模块验证结果。

第五步:使用启动参数指定环境。这样虽然实现了环境隔离,但是是硬编码的方式,因为我们在bootstrap.yml写死了环境参数,实际开发中应该使用启动参数来指定。

-Dspring.cloud.nacos.config.namespace=bb9f6e91-3455-4020-903f-6a2726284e62
-Dspring.cloud.nacos.config.group=project_B
-Dspring.profiles.active=TEST

关注公众号了解更多原创博文

Spring Cloud Alibaba 教程 | Nacos(四)的更多相关文章

  1. Spring Cloud Alibaba 教程 | Nacos(一)

    什么是Nacos Nacos是一个更易于构建云原生应用的动态服务发现.配置管理和服务管理平台. Nacos 致力于帮助您发现.配置和管理微服务.Nacos提供了一组简单易用的特性集,帮助您快速实现动态 ...

  2. Spring Cloud Alibaba 教程 | Nacos(三)

    使用Nacos作为配置中心 前面我们已经介绍过滤Nacos是一个更易于构建云原生应用的动态服务发现.配置管理和服务管理平台.所以它可以作为注册中心和配置中心,作为注册中心Nacos可以让我们灵活配置多 ...

  3. Spring Cloud Alibaba 教程 | Nacos(五)

    扩展配置(extended configurations) 通过之前的学习,我们知道应用引入nacos配置中心之后默认将会加载Data ID= ${prefix} - ${spring.profile ...

  4. Spring Cloud Alibaba 教程 | Nacos(二)

    源码解析客户端注册过程 nacos作为注册中心,包含了nacos服务端(注册中心服务)和nacos客户端,nacos注册中心服务上面一讲已经介绍过了它是一个用Java语言编写开源web项目,并且拥有自 ...

  5. Spring Cloud Alibaba 教程 | Nacos(六)

    集群模式部署 前面我们已经学习了Nacos作为注册中心.配置中心的相关功能,但是我们之前启动Nacos是通过单实例模式启动的,只适合在学习和开发阶段,生产环境需要保证Nacos的高可用,所以今天我们来 ...

  6. Spring Cloud Alibaba(6)---Nacos持久化Mysql8.0版本

    Nacos持久化Mysql8.0版本 有关Nacos之前写过三篇文章. Spring Cloud Alibaba(3)---Nacos概述 Spring Cloud Alibaba(4)---Naco ...

  7. Spring Cloud Alibaba 使用nacos 注册中心

    ### 背景 上一文我们讲到了如何去搭建注册中心,这一次我们讲述如何使用nacos作为注册中心 ### spring-cloud-alibaba-basis 创建基础依赖 首先我们创建一个spring ...

  8. Spring Cloud Alibaba(2)---Nacos概述

    Spring Cloud Alibaba(2)---nacos概述 上一篇博客讲了有关 SpringCloudAlibaba的概述,这篇开始讲SpringCloudAlibaba组件之一---Naco ...

  9. Spring Cloud Alibaba(5)---Nacos(配置中心)

    Nacos(配置中心) 有关Spring Cloud Alibaba之前写过四篇文章,这篇也是在上面项目的基础上进行开发. Spring Cloud Alibaba(1)---入门篇 Spring C ...

随机推荐

  1. 2 —— js语法 —— 对象和方法的声明 。变量提升。闭包

    一,声明对象 var obj1 = {}; var obj2 = {name:'kk',age:18,fun:function{          // name,age,fun为对象的属性,只是属性 ...

  2. JavaScript原生Ajax请求纯文本数据

    源代码 ajax1.html: <!DOCTYPE html> <html> <head> <meta charset="utf-8"&g ...

  3. 干货分享:Academic Essay写作套路详解

    你想过如何中立的表达自己吗?大概只有10%不到的同学,会真正重视这个细节.但很多留学生能顺利写完作文已经不容易,还要注意什么中立不中立的.我知道这个标准,对许多同学有些过分,但很残酷的告诉你,这的确是 ...

  4. 微信小程序 -- 自定义抽屉式菜单(底部,从下向上拉出)

    实现一个抽屉菜单的案例 wxml <!--button--> <view class="btn" bindtap="powerDrawer" ...

  5. 大数据高可用集群环境安装与配置(09)——安装Spark高可用集群

    1. 获取spark下载链接 登录官网:http://spark.apache.org/downloads.html 选择要下载的版本 2. 执行命令下载并安装 cd /usr/local/src/ ...

  6. UltraISO制作manjaro系统盘,使用优盘

    下载系统镜像 默认是清华镜像 刻入方式一定要选RAW方式

  7. Python模块进阶、标准库、扩展库

    模块进阶 Python有一套很有用的标准库(standard library).标准库会随着Python解释器,一起安装在你的电脑中的. 它是Python的一个组成部分.这些标准库是Python为你准 ...

  8. Linux command line and shell scripting buble

    Chapter 4 More bash shell Commands 1. ps ps -ef 2. top 3. kill 3940 kill -s HUP 3940 killall http* 4 ...

  9. 在div中注入html代码

    直接开始: <div id="content"class="modal-body"> </div> 在angularjs中使用如下代码, ...

  10. 浅谈$NTT$

    \(NTT\),快速数论变换,可以理解为带模数的FFT. 原根 & 阶 先来补一点数论.(这里讲的应该很少,都是针对\(ntt\)胡的,具体的话可以去看<初等数论>那本小黄书). ...