Skip to content

创建命名空间

创建命名空间有两种方式:显式创建和自动创建。通过这两种方式,您可以根据不同的需求灵活选择创建命名空间的方式。显式创建适用于需要严格控制的环境,而自动创建则适用于动态环境,减少了手动干预。

显式创建命名空间

通过 Dashboard 或 REST API,您可以手动显式创建命名空间。显式创建的命名空间可以被直接管理、编辑和删除。

使用场景:适用于您希望明确控制哪些命名空间存在,并且需要对命名空间进行精细管理的情况。

通过 Dashboard 显示创建命名空间

以下为在 Dashboard 中快速创建命名空间的步骤:

  1. 在 Dashboard 左侧菜单中点击管理 ->命名空间

  2. 点击创建。在弹出的创建命名空间对话框中输入命名空间的名称。其余选项设置为默认值。有关如何配置最大会话数和速率限制,参考通过 Dashboard 配置和管理命名空间

  3. 点击创建。您将看到新创建的命名空间出现在列表中。

通过 REST API 显示创建命名空间

在应用任何命名空间特定配置(如速率限制、会话限制)之前,必须先显式创建命名空间。

可以通过以下 API 创建命名空间:

http
POST /mt/ns/<namespace>

<namespace> 替换为所需的命名空间 ID,请求体为空。

自动创建命名空间

在 EMQX 中,命名空间也可以在客户端连接时自动创建。

自动创建命名空间并非直接基于 client_attrs.tns 字段本身,而是依赖于**命名空间来源**配置。当客户端连接到 EMQX 时,系统会根据已配置的命名空间来源规则,从客户端连接信息中生成 tns(租户命名空间)属性;如果对应的命名空间尚不存在,EMQX 将自动创建该命名空间。

使用场景:该方式适用于客户端连接来源可信、命名空间标识可从连接元数据中稳定提取,并且需要为大量租户或业务单元动态创建命名空间的场景。

注意

自动创建的命名空间为只读命名空间,无法在 Dashboard 中进行编辑或修改其配置(如会话限制、速率限制)。这些命名空间由系统根据命名空间来源规则自动生成。

注意

只有当 multi_tenancy.allow_only_managed_namespaces = false 时,才允许根据命名空间来源规则自动创建命名空间。

当该配置为 true 时,仅允许使用显式创建的命名空间,自动创建将被禁止。

您也可以在 Dashboard 中通过**仅允许显式创建的命名空间**配置项启用或关闭该行为。