[Pulsar] Pulsar Resources 介绍
在 Pulsar 中,我们除了需要在 Bookie 中管理用户的数据,还要在 ZK 中管理其他的各类数据:如各类 Policy、鉴权相关的数据等等。在 Pulsar 中,使用 PulsarResources 对这些资源进行管理,本文将对 PulsarResources 进行简要介绍。
在初始化 Pulsar Resoures 时,会传入 MetadataStore,包括用于管理本地集群数据的 localMetadatStore 以及用于管理各类集群或跨地域管理的 configurationMetadataStore。Pulsar Resources 中的数据都是存储在 metadataStore 中的。而 MetadataStore 是一个接口,一个典型的实现就是 Zookeeper 实现,Pulsar 目前也主要使用 ZK 来实现元数据的管理。
在 PulsarResourcces 中维护了各类的资源,如下:
这里对一些主要的资源进行介绍。
TenantResources 主要管理各类 tenant 的资源,存储在 MetadataStore(默认的实现是 ZK 实现)中的/admin/policies 路径下,主要是用来管理 tenants 的增删改查,以及获取 tenant 下的 namespaces。
ClusterResources 主要管理 clusters 的增删改查,数据存储在/admin/clusters 路径下。
NamespaceResources 用于管理 namesapce 下的各类资源,包括 namespace 层级下的 policy,常用于鉴权,除此之外,还用来管理 namespace 下的 bundle 信息(在/loadbalance/bundle-data 路径下)。
TopicResources 用于管理各类 topic 的元数据,如对 persistentTopic 进行增删改查,获取某个 partitioned topic 的 partition 数量,这些数据均存储在/managed-ledgers 路径下。我们在进行 Topic 的 Lookup 时就依赖这些数据。
Pulsar 在各类操作中,如创建 topic、查询 topic、设置 policy、鉴权等等,都需要通过 PulsarResources 进行管理,也是 Pulsar Broker 中的一个重要组成部分。
版权声明: 本文为 InfoQ 作者【Zike Yang】的原创文章。
原文链接:【http://xie.infoq.cn/article/ea3077a8590e3a781fa5fec77】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论