Nacos:多环境下如何“管理”及“隔离”配置和服务
前言
现如今,在微服务体系中,一个系统往往被拆分为多个服务,每个服务都有自己的配置文件,然后每个系统往往还会准备开发环境、测试环境、正式环境
我们来说算一算,假设某系统有10个微服务,那么至少有10个配置文件吧,三个环境(dev\test\prod),那就有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
Namespace实施方案1
Nacos给出了两种Namespace的实践方案
- 面向一个租户
- 面向多个租户
方案1主要说明一下面向一个租户
从一个租户(用户)的角度来看,如果有多套不同的环境,那么这个时候可以根据指定的环境来创建不同的 namespce,以此来实现多环境的隔离。
例如,你可能有dev,test和prod三个不同的环境,那么使用一套 nacos 集群可以分别建以下三个不同的 namespace。如下图所示:
这里的单租户同样也适于小型项目,或者是项目不太多时的实施方案
通过定义不同的环境,不同环境的项目在不同的Namespace下进行管理,不同环境之间通过Namespace进行隔离
当多个项目同时使用该Nacos集群时,还可以通过Group进行Namespace内的细化分组
这里以Namespace:dev
为例,在Namespace中通过不同Group进行同一环境中不同项目的再分类
有了以上思路,我们通过代码来实践一下
Namespace下新建配置文件
启动Nacos-Server,进入Nacos控制台,切换到Namespace