26|从集群角度拆解Pulsar的架构设计与实现
许文强
你好,我是文强。
我们在基础篇讲过,从设计定位上来看,Pulsar 是作为 Kafka 的升级替代品出现的,它主要解决了 Kafka 在集群层面的弹性和规模限制问题。那么现在我们就从集群的角度来拆解一下 Pulsar 的架构设计和实现,先来看一下集群构建。
集群构建
在当前版本,Pulsar 集群构建和元数据存储的核心依旧是 ZooKeeper,同时社区也支持了弱 ZooKeeper 化改造。如下图所示,Pulsar Broker 集群的构建思路和 Kafka 是一致的,都是通过 ZooKeeper 来完成节点发现和集群的元数据管理。
从实现角度来看,Broker 启动时会在 ZooKeeper 上的对应目录创建名称为 BrokerIP + Port 的子节点,并在这个子节点上存储 Broker 相关信息,从而完成节点注册。Pulsar Broker 的节点信息是存储在 ZooKeeper 上的 /loadbalance/brokers 节点上,目录结构如下所示:
公开
同步至部落
取消
完成
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
《深入拆解消息队列 47 讲》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(1)
- 最新
- 精选
- Johar为什么在去 ZooKeeper 的路上选择了可插拔的元数据存储框架,而不是去掉第三方存储引擎? 1.优秀分布式存储实现不易,需要技术积累,和成本 2.目前技术日新月异,每个中间件都自己的优点缺点,2023-08-19归属地:重庆
收起评论