集群构建
Pulsar 集群构建和元数据存储的核心依旧是 ZooKeeper,同时社区也支持了弱 ZooKeeper 化改造。
Pulsar 的全部元数据都持久化存储在 ZooKeeper 中,同时 Broker 也会缓存一部分数据。Pulsar 在 ZooKeeper 中主要存储了包括集群管控,存储层的 Bookie、Ledgers,计算层 LoadBalance、Bundle,周边功能 Schema、Stream、Function 等信息。
主节点
主节点负责管理集群的元数据和状态信息,例如主题、订阅、消费者等。主节点还负责协调集群中的各个节点,例如选举副本、分配分区等。
当一个节点启动时,它会向 ZooKeeper 注册自己,并尝试成为主节点。如果当前没有主节点,或者当前的主节点失效了,那么该节点就会成为新的主节点。
弱 ZooKeeper 就是允许将 ZooKeeper 替换为其他的单机或分布式协调服务。目前支持 ZooKeeper、etcd、RocksDB、内存四种方案。
数据可靠性
Pulsar 通过在 Broker 中设置 Qw 和 Qa 来设置 Ledger 的总副本数和写入成功的副本数。所以从一致性来看,Pulsar 既可以是强一致,也可以是最终一致。
安全控制
Pulsar 提供了传输加密、身份认证、资源鉴权、端到端加密四种手段。
可观测性
Pulsar 定位云原生消息队列,所以它的指标模块主要围绕 Prometheus 和 Grafana 体系来搭建的。
在指标定义记录方面,Pulsar 使用 Prometheus 指标库来完成指标记录。
此文章为11月Day26学习笔记,内容来源于极客时间《深入拆解消息队列 47 讲》