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 ...
随机推荐
- Nachos-Lab3-同步与互斥机制模块实现
源码获取 https://github.com/icoty/nachos-3.4-Lab 内容一:总体概述 本实习希望通过修改Nachos系统平台的底层源代码,达到"扩展同步机制,实现同步互 ...
- 吴裕雄--天生自然C++语言学习笔记:C++ 异常处理
异常是程序在执行期间产生的问题.C++ 异常是指在程序运行时发生的特殊情况,比如尝试除以零的操作. 异常提供了一种转移程序控制权的方式.C++ 异常处理涉及到三个关键字:try.catch.throw ...
- gcc/g++以c++11的方式编译
方法一: 在程序头加上预定义编译器命令 #pragma GCC diagnostic error "-std=c++11" 通过#pragma 指示 GCC编译器处理错误的方式以c ...
- CGridCtrl设置行列不可拉伸
m_HFlexGrid.SetColumnResize(FALSE); m_HFlexGrid.SetRowResize(FALSE);
- Java算法练习——正则表达式匹配
题目链接 题目描述 给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 '.' 和 '*' 的正则表达式匹配. '.' 匹配任意单个字符 '*' 匹配零个或多个前面的那一个元素 所谓匹配,是要 ...
- react入门(1)之阮一峰react教程
阮一峰老师的github地址:React Demos React 入门实例教程 2.ReactDOM.render() // ReactDOM.render() 将模板转化为 HTML 语言 // 参 ...
- 【每日Scrum】第九天冲刺
一.计划会议内容 尝试数据库的连接与ui应用 二.任务看板 任务看板 已完成:登录与个人界面布局实现 进行中:连接数据库,地图主界面 待进行:功能整合 三.scrum讨论照片 四.产品的状态 无 五. ...
- IDEA的一些常用设置
一.给方法之间添加分割线 效果: 二.自动导包 三.字体以及大小和行间距 四.注释的字体颜色 五.项目编码 六.省点模式(开启省点模式后会取消代码检查和提示等,需要注意) 七.代码垂直或者水平分区显示 ...
- MySQL授权用户登录访问指定数据库
使用Navicat等客户端工具,选中需要共享的数据库,点击查询>新建查询 1.写SQL语句:GRANT ALL PRIVILEGES ON * TO 'test'@'%'IDENTIFIED B ...
- UVA - 10285 Longest Run on a Snowboard(最长的滑雪路径)(dp---记忆化搜索)
题意:在一个R*C(R, C<=100)的整数矩阵上找一条高度严格递减的最长路.起点任意,但每次只能沿着上下左右4个方向之一走一格,并且不能走出矩阵外.矩阵中的数均为0~100. 分析:dp[x ...