Namespace 隔离设计
命名空间(Namespace)用于进行租户粒度的隔离,Namespace 的常用场景之一是不同环境的隔离,例如开发测试环境和生产环境的资源(如配置、服务)隔离等。
从一个租户(用户)的角度来看,如果有多套不同的环境,那么这个时候可以根据指定的环境来创建不同的
namespce,以此来实现多环境的隔离。

从多个租户(用户)的角度来看,每个租户(用户)可能会有自己的 namespace,每个租户(用户)的配置数据以及注册的服务数据都会归属到自己的 namespace 下,以此来实现多租户间的数据隔离。

命名空间管理
命名空间(Namespace)是用于隔离多个环境的(如开发、测试、生产),而每个应用在不同环境的同一个配置(如数据库数据源)的值是不一样的。因此,我们应针对企业项目实际研发流程、环境进行规划。如某软件公司拥有开发、测试、生产三套环境,那么我们应该针对这三个环境分别建立三个namespace。创建命名空间

查看命名空间服务


数据模型
Nacos在经过阿里内部多年生产经验后提炼出的数据模型,是一种服务-集群-实例的三层模型,这样基本可以满足服务在所有场景下的数据存储和管理。

服务
对外提供的软件功能,通过网络访问预定义的接口。
实例
提供一个或多个服务的具有可访问网络地址(IP:Port)的进程,启动一个服务,就产生了一个服务实例。
元信息
Nacos数据(如配置和服务)描述信息,如服务版本、权重、容灾策略、负载均衡策略、鉴权配置、各种自定义标签 (label),从作用范围来看,分为服务级别的元信息、集群的元信息及实例的元信息。
集群
服务实例的集合,服务实例组成一个默认集群, 集群可以被进一步按需求划分,划分的单位可以是虚拟集群,相同集群下的实例才能相互感知。
通过数据模型可知:
应用通过Namespace、Service、Cluster(DEFAULT)的配置,描述了该服务向哪个环境(如开发环境)的哪个集群注册实例。
指定namespace的id:a1f8e863-3117-48c4-9dd3-e9ddc2af90a8(注意根据自己环境设置namespace的id)
指定集群名称:DEFAULT表示默认集群,可不填写
指定服务的命名空间
spring:
application:
name: servcie‐service
cloud:
nacos:
discovery:
server‐addr: 127.0.0.1:8848 # 注册中心地址
namespace: 58853e5b-4a83-44e0-84da-f3acddb10fdd # dev 开发环境
cluster‐name: DEFAULT # 默认集群,可不填写
注意:如果指定的服务,有相关的服务,都要一起指定到同一个命名空间,否则不在一个空间会缺少报错
Nacos的Namespace提供租户粒度的环境隔离,如开发测试与生产环境的资源隔离。命名空间管理涉及创建与查看,适用于多环境场景。数据模型包括服务-集群-实例三层,描述了服务注册实例的方式。指定命名空间ID与集群名称,确保服务在同一命名空间内以避免错误。
3043

被折叠的 条评论
为什么被折叠?



