博文推荐|深度解析如何在|博文推荐|深度解析如何在 Pulsar 中实现隔离
本文作者为 StreamNative 工程师李鹏辉、刘昱。
关于 Apache PulsarApache Pulsar 的一大优点是 Pulsar 的多层分片架构和分层资源管理为隔离(isolation)提供了坚实基础,用户可以以所需方式隔离资源,避免资源竞争,保证系统稳定性。
Apache Pulsar 是 Apache 软件基金会顶级项目,是下一代云原生分布式消息流平台,集消息、存储、轻量化函数式计算为一体,采用计算与存储分离架构设计,支持多租户、持久化存储、多机房跨区域数据复制,具有强一致性、高吞吐、低延时及高可扩展性等流数据存储特性。
GitHub 地址: http://github.com/apache/pulsar/
本系列博客将深入讨论 Pulsar isolation。本文为本系列文章的第一篇,主要介绍如何在 Pulsar 中通过以下方式实现隔离:
- 单独 Pulsar 集群
- 共享 BookKeeper 集群
- 单一 Pulsar 集群
工作原理 图 1 展示了如何通过部署单独的 Pulsar 集群实现隔离。
文章图片
工作原理要点:
- 每个 Pulsar 集群 通过 DNS entry point 接入服务,并确保客户端可以通过 DNS entry point 访问集群。客户端可以使用一个或多个 Pulsar URL,该 URL 是 Pulsar 集群的连接地址。
- 每个 Pulsar 集群有一个或多个 broker和 bookie。
- 每个 Pulsar 集群有一个元数据存储区。
- 元数据存储区可以分为 Pulsar 元数据存储区 和 BookKeeper 元数据存储区。本文不区分上述两种元数据存储区,元数据存储区同时包含二者。
- 多个 Pulsar 集群共享一个配置存储。
- Pulsar 分层的资源管理为隔离提供了坚实基础。如需隔离命名空间,则需要为命名空间指定集群。集群必须属于租户允许的集群列表。属于该命名空间的 topic 也会分配至该集群。关于如何为命名空间设置集群,参阅 为命名空间设置集群。关于如何管理 Pulsar 集群,参阅管理 Pulsar 集群。
扩缩容节点 扩缩容 broker 或 bookie 的操作需在相应集群中进行。
共享 BookKeeper 集群 在这种方式中,你需要部署一个由多个 broker 集群共享的 BookKeeper 集群。
工作原理 图 2 展示了如何通过部署共享 BookKeeper 集群实现隔离。
文章图片
工作原理要点:
- 每个 Pulsar 集群 通过 DNS entry point 接入服务,并确保客户端可以通过 DNS entry point 访问集群。客户端可以使用一个或多个 Pulsar 集群的连接地址。
- 每个 Pulsar 集群有一个或多个 broker。
- 每个 Pulsar 集群有一个元数据存储区。
- 多个 Pulsar 集群共享一个 BookKeeper 集群。
- Pulsar 分层的资源管理为隔离提供了坚实基础。如需隔离命名空间,则需要为命名空间指定集群。集群必须属于租户允许的集群列表。属于该命名空间的 topic 也会分配至该集群。关于如何为命名空间设置集群,参阅 为命名空间设置集群。关于如何管理 Pulsar 集群,参阅管理 Pulsar 集群。
- 通过不同 bookie affinity group 实现存储隔离,如图 3。
- 所有 bookie 隔离组共享 BookKeeper 集群和元数据存储区。
- 每个 bookie 隔离组有一个或多个 bookie。
- 用户可以为命名空间指定一个或多个 primary group 或 secondary group。先在 primary group 的 bookie 上创建命名空间中的 topic,再在 secondary group 的 bookie 上创建命名空间中的 topic。关于如何设置 bookie affinity group,参阅设置 bookie affinity group。
文章图片
迁移命名空间 将命名空间上的消息服务迁移到其他 broker 集群上,需要为命名空间更改集群。将命名空间迁移到其他 bookie affinity group 中,需要更改 bookie affinity group。关于如何设置 bookie affinity group,参阅设置 bookie affinity group。由于所有 broker 集群共享同一 BookKeeper 集群,因此无需复制数据到新的 BookKeeper 集群上。
扩缩容节点 Broker
扩缩容 broker 时,需要注意以下几点:
- 扩容 broker 时, 需使用 primary group 或 secondary group 为新增 broker 指定 broker 隔离组。
- 缩容 broker 时,需确保 broker 隔离组有足够数量的 broker。
扩缩容 bookie 时,需要注意以下几点:
- 扩容 bookie 时,需为新增 bookie 指定 bookie affinity group。
- 缩容 bookie 时,需确保 bookie affinity group 有足够数量的 bookie。关于如何设置 bookie affinity group,参阅设置 bookie affinity group。
工作原理 图 4 展示了如何通过部署单一 Pulsar 集群实现隔离。
文章图片
工作原理要点:
- 每个 Pulsar 集群 通过 DNS entry point 接入服务,并确保客户端可以通过 DNS entry point 访问集群。客户端可以使用 Pulsar 集群的连接地址。
- 通过不同 broker 隔离组实现 broker 隔离(Pulsar 将 topic 分配给特定 broker 隔离中的 broker)。关于如何设置 broker 隔离组,参阅设置 broker 隔离组。
- 通过不同 bookie affinity group 实现存储隔离。关于如何设置 bookie affinity group,参阅设置 bookie affinity group。
迁移命名空间到其他 bookie affinity group(不将原始数据移动至目标 bookie affinity group),需要更改 bookie affinity group。关于如何设置 bookie affinity group,参阅设置 bookie affinity group。
扩缩容模式 Broker
扩缩容 broker 时,需要注意以下几点:
- 扩容 broker 时, 需使用 primary group 或 secondary group 为新增 broker 指定 broker 隔离组。
- 缩容 broker 时,需确保 broker 隔离组有足够数量的 broker。
扩缩容 bookie 时,需要注意以下几点:
- 扩容 bookie 时,需为新增 bookie 指定 bookie affinity group。
- 缩容 bookie 时,需确保 bookie affinity group 有足够数量的 bookie。关于如何设置 bookie affinity group,参阅设置 bookie affinity group。
相关阅读
- 博文推荐 | 一文带你看懂 Pulsar 的消息保留和过期策略
- 博文推荐|腾讯专家深度解析 Apache Pulsar 五大应用场景
- 博文推荐|Pulsar 存储空间不释放的问题分析与解决方法
文章图片
【博文推荐|深度解析如何在|博文推荐|深度解析如何在 Pulsar 中实现隔离】点击 链接 ,获取 Apache Pulsar 硬核干货资料!
推荐阅读
- 成交的种子咖啡冥想
- 历史教学书籍
- 《深度倾听》第5天──「RIA学习力」便签输出第16期
- 【亲测好用】高逼格配色网站推荐
- 推荐系统论文进阶|CTR预估 论文精读(十一)--Deep Interest Evolution Network(DIEN)
- 往前跑,向前冲??——勇气读书会推荐图书《阿甘正传》
- 电影推荐|电影推荐|《教父》
- 三D088期
- 算法回顾(SVD在协同过滤推荐系统中的应用)
- 自媒体平台思维及标题攻略