深入拆解消息队列 47 讲
许文强
前腾讯云 Kafka 技术负责人
5385 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 50 讲
深入拆解消息队列 47 讲
15
15
1.0x
00:00/00:00
登录|注册

26|从集群角度拆解Pulsar的架构设计与实现

你好,我是文强。
上节课我们讲完了 Kafka ,这节课我们再来看一下消息队列领域最新的成员 Pulsar。在开始学习本节课之前,你可以先复习一下第 13 讲,这样的话你对本节内容吸收得会更好。
我们在基础篇讲过,从设计定位上来看,Pulsar 是作为 Kafka 的升级替代品出现的,它主要解决了 Kafka 在集群层面的弹性和规模限制问题。那么现在我们就从集群的角度来拆解一下 Pulsar 的架构设计和实现,先来看一下集群构建。

集群构建

在当前版本,Pulsar 集群构建和元数据存储的核心依旧是 ZooKeeper,同时社区也支持了弱 ZooKeeper 化改造。如下图所示,Pulsar Broker 集群的构建思路和 Kafka 是一致的,都是通过 ZooKeeper 来完成节点发现和集群的元数据管理。
从实现角度来看,Broker 启动时会在 ZooKeeper 上的对应目录创建名称为 BrokerIP + Port 的子节点,并在这个子节点上存储 Broker 相关信息,从而完成节点注册。Pulsar Broker 的节点信息是存储在 ZooKeeper 上的 /loadbalance/brokers 节点上,目录结构如下所示:
[zk: 9.164.54.17:2181(CONNECTED) 67] ls /loadbalance/brokers
[30.13.4.1:8080, 30.13.8.2:8080, 30.13.4.3:8080]
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

Pulsar是一种新兴的消息队列系统,其在集群构建、数据可靠性和安全控制方面具有独特的设计和实现。文章首先介绍了Pulsar集群构建和元数据存储的核心依然是ZooKeeper,但也支持了弱ZooKeeper化改造。Pulsar的数据可靠性通过Ledger和Entry的形式写入BookKeeper,实现了消息数据的可靠性。此外,Pulsar还在安全控制方面实现了传输加密、身份认证、资源鉴权等功能。其中,Pulsar支持端到端加密,通过动态生成的对称会话密钥来加密数据,以保证数据在Broker中保存的是经过加密后的数据。在身份认证方面,Pulsar支持多种认证方式,并提供了可插拔的身份认证框架,允许自定义实现身份认证机制。此外,Pulsar还提供了插件化的资源鉴权机制,支持对Broker、Tenant、Namespace、Topics等四个维度的鉴权。在可观测性方面,Pulsar主要围绕Prometheus和Grafana体系来搭建指标模块,通过在组件上支持HTTP接口/metrics来支持Prometheus的采集。总的来说,Pulsar在集群构建、数据可靠性、安全控制和可观测性方面具有独特的设计和实现,为开发者提供了丰富的功能和灵活的扩展性。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《深入拆解消息队列 47 讲》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(1)

  • 最新
  • 精选
  • Johar
    为什么在去 ZooKeeper 的路上选择了可插拔的元数据存储框架,而不是去掉第三方存储引擎? 1.优秀分布式存储实现不易,需要技术积累,和成本 2.目前技术日新月异,每个中间件都自己的优点缺点,
    2023-08-19归属地:重庆
收起评论
显示
设置
留言
1
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部