重架构层面分析pulsar的优势(一)

pulsar的背景介绍

之前大多数人喜欢用mq或者kafka,但是pulsar结合了两者并做了许多优化,使其成为高性能、易扩展、多租户、跨地域复制的 pub-sub 消息系统,其在雅虎平台的消息通知、邮件队列、日志管道都有很好的支持,雅虎有15000台服务器,每月浏览量有700亿,可见pulsar的性能很客观,pulsar在腾讯计费场景下也有很好的支持,可见pulsar即将成为下一代消息处理机制指日可待。

mq和kafka的消息处理适用场景的区别

1.mq适用于点对点的场景例如消息通知,不适合批量处理,支持消息事务延迟消息,死信队列和消息重试等。
2.kafka有流处理机制适用于大批量处理,比如日志收集。内部采用消息的流处理,zerocopy机制,数据的存储和获取是本地磁盘顺序批量操作,具有O的复杂度,消息处理的效率很高

pulsar的架构及优势介绍

重架构层面分析pulsar的优势(一)_第1张图片
1.pulsar是一个组建集合,由broker、BookKeeper(Bookie)、zookeeper(ZK)组成,zk建议使用集群可以使用已有集群可以使用内置zk,
zk主要是存储一些元数据,包括将数据持久化到bookie以及为整个系统提供配置管理等
2.pulsar有三种订阅模式:Exclusive、Share、Failover,Exclusive 和 Failover 属于 Stream 的消费模型,Share 属于 Queue 的消费模型,Stream包括了kafka的功能,Queue包含了mq的功能
3.pulsar的流处理方式和kafka的流处理区别:pulsar 订阅所有partition并且会以 hash 的形式将消息分发到不同的 consumer 中来消费,topic只能将各个partition发送给其中一个sub-consumer(topic-p1对应一个sub-consumer为主其他的是备选,如果主当机由于某些原因无法工作时才将消息发送给备选sub-consumer,kafka是不断地增加消费者通过reblance 机制分配给不同的consumer,所以pulsar处理消息又更加安全更方便迅速扩展。
重架构层面分析pulsar的优势(一)_第2张图片
上图是pulsar和kafka消息处理对比图,引用自Pulsar与Kafka消费模型对比将消息处理对比讲的很详细

4.pulsar几乎包含了所有mq的性质并且官网上给出了许多消息处理方案包括消息重试、死信队列、延迟消息发送等等

重架构层面分析pulsar的优势(一)_第3张图片
上图是pulsar为队列模式的架构图

总结

在最佳开源数据库与数据分析平台奖中,之前曾连续两年入选的 Kafka 意外滑铁卢落选,取而代之的是新兴项目 Pulsar,Bossie Awards 中对 Pulsar 点评如下:“Pulsar 旨在取代 Apache Kafka 多年的主宰地位。本文重架构层面对比了pulsar和kafka、mq的区别,pulsar更加方便简洁易懂健壮,并且提供了api可以使得kafka平滑转移到pulsar,希望有更多朋友一起讨论pulsar。

你可能感兴趣的:(中间件,java)