Nacos多项目、多环境Namespace和Group配置不同方案总结

简述

本文主要对Nacos多项目、多环境配置的不同方案进行总结。

通常一个项目(Project)会包含多个服务(Service),一个服务对应多个环境(本文以dev、test、prod三个环境为例说明)。

不同的方案取决于Nacos的定位,如果Nacos只是本项目或者本部门使用,那么以下几种方案都可以。如果Nacos作为公共配置中心,供整个公司共同使用的话,那我们在Nacos的配置上就需要更加审慎,严谨,从而保证配置更加合理和灵活。

对于生产环境,可以是单独的一套Nacos,并由专门的人员来维护。

Nacos权限控制:用户--角色--权限(权限对应到命名空间)
所以我们在创建Namespace和Group时,需要考量以什么维度和指标来定义Namespace和Group。

方案一:以不同环境作为Namespace

假如我们项目分dev、test、prod三个不同环境,那么我们可以:
以不同环境作为Namespace,以项目名作为Group,如下图示:

nacos-config-env.jpgnacos-config-env.jpg

适用场景:
适合项目不太多的情况,不同项目的配置可以使用Group分组区分;

优点:Namespace相对固定,不同环境也能做到相互隔离;
缺点:当存在多部门(小组)、项目数量相对较多时,无法做到按部门(小组)隔离配置;

方案二:以项目名作为Namespace

以项目名作为Namespace,以环境或Service作为Group;本例中我们以环境作为Group,如下图示:

nacos-config-project.jpgnacos-config-project.jpg

适用场景:
此方案与方案一类似,适合项目不太多的情况。

优点:以项目作为Namespace,不同项目之间相互隔离;
缺点:项目多的情况下,Namespace会特别多;且不同环境配置无法隔离;

方案三:以租户作为Namespace

这里的租户可以是部门、小组、用户等,每个租户一个Namespace。即一个用户、一个小组或一个部门负责多个项目。

多租户的Nacos,更适合于作为公共的配置中心,供整个公司多个部门所有项目共同使用。

在这里,我们以部门作为Namespace,以项目作为Group说明,如下图示:

nacos-config-tenant.jpgnacos-config-tenant.jpg

(完)

最后修改于:2024年05月22日 08:06

添加新评论