前言
前景回顾:
- Nacos(五):多环境下如何“读取”Nacos中相应环境的配置
- Nacos(四):SpringCloud项目中接入Nacos作为配置中心
现如今,在微服务体系中,一个系统往往被拆分为多个服务,每个服务都有自己的配置文件,然后每个系统往往还会准备开发环境、测试环境、正式环境
我们来说算一算,假设某系统有10个微服务,那么至少有10个配置文件吧,三个环境(devtestprod),那就有30个配置文件需要进行管理。
这么多的配置文件,要修改一个或者多个的时候,稍有不慎可能就会出现改错了、不生效....等等问题。
那么如果引入Nacos作为配置中心后,如何有效的进行配置文件的管理和不同环境间的隔离区分呢?
别担心,Namespace可以帮助我们进行多环境下的管理和隔离
有了上一篇文章的介绍,本文主要从以下几个方面介绍:
- Namespace是什么
- Namespace如何进行配置和服务的管理、隔离
- 创建和获取NamespaceID
- Namespace实施方案1
- Namespace实施方案2
Namespace
Nacos引入了命名空间(Namespace)的概念来进行多环境配置和服务
的管理及隔离
Namespace也是官方推荐的多环境支持方案。
如何进行配置和服务的管理、隔离
当我们的服务达到一定的数量,集中式的管理许多服务会十分不便,
那我们可以将这些具有相同特征或属性的服务进行分组管理,服务对应的配置也进行分组隔离
这里的分组
就是Namespace
的概念,将服务和配置纳入相同的Namespace进行管理
不同Namespace下的服务和配置之间就隔离开来
创建和获取NamespaceID
NamespaceId值是在配置文件配置时必须要填入的配置项,所以需要我们先创建Namespace和Id,步骤如下:
nacos 的控制台左边功能栏看到有一个 命名空间
的功能,点击就可以看到 新建命名空间
的按钮
新建成功后,可以在命名空间列表中查看到你所创建的Namespace和他生成的ID值
这里只是讲解创建步骤,本文继续延用Nacos(五)中创建的DEV、TEST
![42b33119067a11edada9a770c7a101d6.png](https://i-blog.csdnimg.cn/blog_migrate/7a14feea4bb8a6728a5ad9f555c499cd.png)
Namespace实施方案1
Nacos给出了两种Namespace的实践方案
- 面向一个租户
- 面向多个租户
方案1主要说明一下面向一个租户
从一个租户(用户)的角度来看,如果有多套不同的环境,那么这个时候可以根据指定的环境来创建不同的 namespce,以此来实现多环境的隔离。
例如,你可能有dev,test和prod三个不同的环境,那么使用一套 nacos 集群可以分别建以下三个不同的 namespace。如下图所示:
![adc00e7400ee5f20165d95186d5157bb.png](https://i-blog.csdnimg.cn/blog_migrate/f6837297878de256361168ab99aaa46d.png)
这里的单租户同样也适于小型项目,或者是项目不太多时的实施方案
通过定义不同的环境,不同环境的项目在不同的Namespace下进行管理,不同环境之间通过Namespace进行隔离
当多个项目同时使用该Nacos集群时,还可以通过Group进行Namespace内的细化分组
这里以Namespace:dev
为例,在Namespace中通过不同Group进行同一环境中不同项目的再分类
![97ede127724f5cb3cdbb8463d19eee55.png](https://i-blog.csdnimg.cn/blog_migrate/5ae183ae57cc9282220d6c6964a1c6e9.png)
有了以上思路,我们通过代码来实践一下
Namespace下新建配置文件
启动Nacos-Server,进入Nacos控制台,切换到Namespace:dev界面,新建配置文件
- DataId:
nacos-namespace