成为一个多租户系统是 Pulsar 最初设计理念的一部分。 并且,Pulsar 提出了租户的概念。 租户可以跨集群分布,每个租户都可以有单独的认证和授权机制。 租户也是存储配额、消息 TTL 和隔离策略的管理单元。

Pulsar 的多租户性质主要体现在 topic 的 URL 中,其结构如下:

  1. persistent://tenant/namespace/topic

可以看到,租户是 topic 的最基本单位(比命名空间和 topic 名称更为基本)。

租户

可以为 Pulsar 实例中的每个租户分配:

命名空间

Pulsar 通过租户和命名空间这两个关键概念支持多租户。

  • Pulsar 为指定的多个租户配置了合适的容量。
  • 命名空间是一个术语,指租户的管理单元。 命名空间上设置的配置策略适用于在该命名空间中创建的所有 topic。 租户可以使用 REST API 和 pulsar-admin CLI 工具来创建多个命名空间。 例如,包含多个应用程序的租户可以为每个应用程序创建单独的命名空间。

同一命名空间中 topic 的名称如下:

  1. persistent://tenant/app1/topic-1
  2. persistent://tenant/app1/topic-2
  3. persistent://tenant/app1/topic-3