多层的存算分离架构
broker 是无状态的,所以很容易借助 k8s 这样的基础设施实现弹性扩缩容。
broker 把数据存储的关键任务甩给了分布式日志存储系统 BookKeeper
broker 和数据的关联关系记录在 zookeeper 中:在 broker 间转移 partition 只需简单修改元数据即可,完全不会涉及数据复制
Bookkeeper 架构设计
节点对等架构
怎么保证高可用?采用 Quorum 机制,消息会被并发地“以滚动的方式”选取不同的 bookie 节点进行写入 - 数据被均匀地冗余存储<br>
通过条带化写入的形式,非常方便对 bookie 节点可以进行快速故障恢复和扩容
读写隔离:bookie 节点实现读写隔离,写入不再依赖 Page Cache,保证数据可靠性
特性
自带监控体系,broker,bookie 相关指标清晰,方便快速定位问题
支持多租户,可以按照不同小组和对应的服务级别来管理消息保存时间、持久化、堆积清除策略等,统一维护一套 Pulsar 集群。方便运维
采用存储和计算分离的云原生的架构
支持死信队列和延迟队列。
重置消息简单快捷