2025年Pulsar Multi Tenancy 多租户

Pulsar Multi Tenancy 多租户目录 1 Tenants 租户 2 Namespaces 命名空间 3 命名空间更改记录方案和主题级策略 Pulsar 从一开始就是一个多租户系统 为了支持多个租户 multi tenancy Pulsar 提出了租户的概念 租户可以分布在多个集群中 每个租户都可以有自己的身份验证和授权方案

大家好,我是讯享网,很高兴认识大家。

        

目录

1、Tenants 租户

2、Namespaces 命名空间

3、命名空间更改记录方案和主题级策略


        Pulsar 从一开始就是一个多租户系统。为了支持多个租户(multi-tenancy),Pulsar 提出了租户的概念。租户可以分布在多个集群中,每个租户都可以有自己的身份验证和授权方案。同时租户也是一个独立的管理单元,可针对不同的租户配置不同的存储分配方案、消息的TTL策略、隔离策略等。// 租户可以作为一个独立的管理单元       

        Pulsar 的多租户特性主要体现在主题 url 中,其结构如下:// 租户->命名空间->主题

persistent://tenant/namespace/topic 

讯享网

        正如你所见,租户是主题分类的最基本的单元(比命名空间和主题名称更加基础)。


讯享网

1、Tenants 租户

对于 Pulsar 实例中的每个租户,你可以进行以下配置:

  • 一个认证授权方案 // 授权认证
  • 一组集群节点,作为租户配置应用的载体 // 存储消息等等,指定租户运行在哪些节点上

2、Namespaces 命名空间

租户和命名空间是 Pulsar 支持多租户方案的两个关键概念:

  • Pulsar 为指定的租户提供服务,并将适当的存储容量分配给租户。// Pulsar 服务的基础就是租户
  • 名称空间是租户中的管理单元的命名。在命名空间上设置的配置策略,会运用到该命名空间中创建的所有主题上。租户可以创建多个命名空间(通过 REST API 和 Pulsar Admin CLI 工具等自我管理途径)例如,拥有不同应用程序的租户,可以为每一个应用程序创建不同的命名空间。

        同一命名空间中主题的名称如下所示:

讯享网persistent://tenant/app1/topic-1 persistent://tenant/app1/topic-2 persistent://tenant/app1/topic-3

3、命名空间更改记录方案和主题级策略

        Pulsar 是一个多租户的事件流系统。管理员可以在租户级别和命名空间级别分别设置不同的管理的策略。但是,在这些策略中,比如,保留策略和存储分配策略只能在命名空间级使用。在大多数场景中,用户需要在主题级别设置策略。为了有效地支持主题级策略,提出了命名空间更改事件方案,在这种方案中,Pulsar 被用作事件日志来存储命名空间的更改操作(比如,主题策略更改),这种方案有几个好处:// 使用 Pulsar 作为一个事件日志来记录主题级的变更操作,该机制需要引入系统主题,遵循发布订阅模式

  • 避免使用 ZooKeeper 以及向 ZooKeeper 引入更多负载。
  • 使用 Pulsar 作为事件日志用来支持传播策略的缓存。该事件日志可以有效地进行扩展。
  • 可以使用 Pulsar SQL 查询命名空间的变化,并对系统进行审计。

        每个命名空间都有一个名为 __change_events 的系统主题。这个系统主题用来存储指定命名空间的更改操作记录。下图说明了如何利用该机制来更新主题级策略:// 通过发布订阅模式

  1. Pulsar Admin 客户端使用 API 更改主题级策略。
  2. 任何接收到 Admin HTTP 请求的 Broker,都会将此次主题级策略的更改操作发布到命名空间中的系统主题上(__change_events)。// 发布
  3. 每一个拥有命名空间的 Broker,都会订阅系统主题(__change_events),并接收命名空间的更改操作消息(事件)。// 订阅
  4. 当 Broker 接收到更改消息后,都会把该更改应用到它的策略缓存上。// 更改策略
  5. 当策略缓存被更新后,Broker 会将响应消息发送回 Pulsar Admin 客户端。

        注意:

        默认情况下,默认不支持该系统主题。为了支持主题级别的策略,需要配置 topicLevelPoliciesEnabled = true ,同时,为了启用系统主题,你需要在 Pulsar 的配置文件中,如,conf/broker.conf 或者 conf/standalone.conf 中设置 systemtopicenabled = true 。

小讯
上一篇 2025-03-02 19:31
下一篇 2025-02-13 17:15

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/54010.html