1. 概述
Namespace(命名空间)用于进行租户粒度的配置隔离。不同的命名空间下,可以存在相同的配置或服务,他们是完全隔离的。如果在没有指定Namespace的情况下,默认使用 public 命名空间。
常用场景之一是不同环境的配置的区分隔离,例如开发测试环境和生产环境使用同一个Nacos时,可以使用命名空间进行隔离。
2. 案例演示
2.1 新建命名空间
在Nacos控制台可以对命名空间进行管理:
新建一个命名空间,输入名称和描述:
没有输入命名空间
ID时则自动生成一个唯一ID:
在服务或者配置列表中,会显示新建的命名空间:
2.2 客户端配置
在后台服务中,可以指定将服务注册到相应的命名空间下:
spring:
application:
name: order-demo
cloud:
nacos:
discovery:
username: nacos
password: nacos
# 命名空间
namespace: 0faa0970-1179-4143-8aa2-cac3ee6b42ec
查看控制台,当前服务显示在了对应的命名空间下:
注意事项:
- 没有配置
Namespace ID时,默认值是public。 - 如果当前
Namespace不存在,不会报错,在控制台中会查询不到当前服务 - 只有同一命名空间下的服务才可以互相调用。
3. 数据库数据
在tenant_info租户信息表中,存储了命名空间信息: