跳到主要内容

多租户支持

概述

YedMQ 的多租户功能为在单个消息代理基础设施上支持多个组织提供了强大而安全的解决方案。这种架构确保了不同租户之间的完全隔离,同时最大化资源利用率并降低运维开销。

特性

租户隔离

  • 命名空间隔离:每个租户都拥有专属的主题命名空间
  • 连接隔离:为每个租户提供独立的连接池
  • 安全边界:租户间的消息流完全隔离

如何设置租户ID

YedMQ 的多租户管理主要通过 Authentication Plugin 来实现控制。当新的 MQTT 客户端尝试建立连接时,Authentication Plugin 会自动介入连接过程,分析连接参数中的 client identify 和 username,确定客户端所属的租户身份,并返回相应的租户 ID。

认证过程

连接参数解析

当客户端发起连接时,Authentication Plugin 会接收到以下关键信息:

  • Client Identify:客户端唯一标识符
  • Username:用户名,通常包含租户信息
  • Password:认证密码

租户ID生成

YedMQ 根据插件的返回值来确定客户端所属的Tenant ID。

Example:

AuthenticationResultValue::Success("YOUR_TENANT_ID".into())