Spring Cloud Alibaba 教程 | Nacos(四)
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(四)的更多相关文章
- Spring Cloud Alibaba 教程 | Nacos(一)
什么是Nacos Nacos是一个更易于构建云原生应用的动态服务发现.配置管理和服务管理平台. Nacos 致力于帮助您发现.配置和管理微服务.Nacos提供了一组简单易用的特性集,帮助您快速实现动态 ...
- Spring Cloud Alibaba 教程 | Nacos(三)
使用Nacos作为配置中心 前面我们已经介绍过滤Nacos是一个更易于构建云原生应用的动态服务发现.配置管理和服务管理平台.所以它可以作为注册中心和配置中心,作为注册中心Nacos可以让我们灵活配置多 ...
- Spring Cloud Alibaba 教程 | Nacos(五)
扩展配置(extended configurations) 通过之前的学习,我们知道应用引入nacos配置中心之后默认将会加载Data ID= ${prefix} - ${spring.profile ...
- Spring Cloud Alibaba 教程 | Nacos(二)
源码解析客户端注册过程 nacos作为注册中心,包含了nacos服务端(注册中心服务)和nacos客户端,nacos注册中心服务上面一讲已经介绍过了它是一个用Java语言编写开源web项目,并且拥有自 ...
- Spring Cloud Alibaba 教程 | Nacos(六)
集群模式部署 前面我们已经学习了Nacos作为注册中心.配置中心的相关功能,但是我们之前启动Nacos是通过单实例模式启动的,只适合在学习和开发阶段,生产环境需要保证Nacos的高可用,所以今天我们来 ...
- Spring Cloud Alibaba(6)---Nacos持久化Mysql8.0版本
Nacos持久化Mysql8.0版本 有关Nacos之前写过三篇文章. Spring Cloud Alibaba(3)---Nacos概述 Spring Cloud Alibaba(4)---Naco ...
- Spring Cloud Alibaba 使用nacos 注册中心
### 背景 上一文我们讲到了如何去搭建注册中心,这一次我们讲述如何使用nacos作为注册中心 ### spring-cloud-alibaba-basis 创建基础依赖 首先我们创建一个spring ...
- Spring Cloud Alibaba(2)---Nacos概述
Spring Cloud Alibaba(2)---nacos概述 上一篇博客讲了有关 SpringCloudAlibaba的概述,这篇开始讲SpringCloudAlibaba组件之一---Naco ...
- Spring Cloud Alibaba(5)---Nacos(配置中心)
Nacos(配置中心) 有关Spring Cloud Alibaba之前写过四篇文章,这篇也是在上面项目的基础上进行开发. Spring Cloud Alibaba(1)---入门篇 Spring C ...
随机推荐
- 安装npm install时,长时间停留在fetchMetadata: sill 解决方法——换npm的源
安装npm install时,长时间停留在fetchMetadata: sill mapToRegistry uri http://registry.npmjs.org/whatwg-fetch处, ...
- 文本编辑器vim/vi——末行模式
指令格式: #vim 文件路径作用:打开指定的文件. 进入方式:由命令模式进入,按下“:”或者“/(表示查找)”即可进入 退出方式: a. 按下esc b. 连按2次esc键 c. 删除末行全部输入字 ...
- GLConsole的编译和使用
1.在CVars文件中搜索tinyxml,去掉所有tinyxml的编译选项 2.Add the following line to the "CMakeLists.txt" fil ...
- 004、mysql使用SHOW语句找出服务器上当前存在什么数据库
SHOW DATABASES; 不忘初心,如果您认为这篇文章有价值,认同作者的付出,可以微信二维码打赏任意金额给作者(微信号:382477247)哦,谢谢.
- 5. 支撑高并发,高可用,海量数据备份恢复的Redis重要性
商品详情页的架构实现 缓存架构 第一块儿,要掌握的很好的,就是redis架构 高并发,高可用,海量数据,备份,随时可以恢复,缓存架构如果要支撑这些要点,首先呢,redis就得支撑 redis架构,每秒 ...
- 【iOS】Swift4.0 GCD的使用笔记
https://www.jianshu.com/p/47e45367e524 前言 在Swift4.0版本中GCD的常用方法还是有比较大的改动,这里做个简单的整理汇总. GCD的队列 队列是一种遵循先 ...
- net GC 学习以及问题
引用对象必要空间开销:对象指针.同步块索引 GC重要点: 每个应用程序包含一组根,每个根都是一个存储位置,其中包含指向引用类型对象的一个指针,该指针要么指向托管堆中的要给对象,要么为null.(这句话 ...
- php srand()和rand()
1.rand()函数 作用:返回随机整数 用法:rand(min,max) min和max规定随机数产生的范围,可以省略不写,不写时rand() 返回 0 到 RAND_MAX 之间的伪随机整数. ...
- css mix-blend-mode 颜色滤镜混合模式
CSS3混合模式种类 在CSS3混合模式中,目前仅有16种:normal,multiply,screen,overlay,darken,lighten,color-dodge,color-burn,h ...
- MyBatis从入门到精通(第3章):MyBatis注解方式的基本使用
MyBatis 注解方式就是将 SQL 语句直接写在DAO层的接口上. 在黑马录制的2018年双元视频课:\08 SSM整合案例[企业权限管理系统]\07.订单操作 有使用MyBatis注解进行多表 ...