【发布时间】:2018-02-13 08:58:29
【问题描述】:
Yahoo 开发了 Pulsar、pub-sub 消息传递系统并将其开源。它现在是 Apache 的孵化项目。由于 Kafka 也用于相同目的。想知道 Kafka 相对于 Pulsar 的主要优点和缺点。
【问题讨论】:
标签: apache-kafka apache-pulsar
Yahoo 开发了 Pulsar、pub-sub 消息传递系统并将其开源。它现在是 Apache 的孵化项目。由于 Kafka 也用于相同目的。想知道 Kafka 相对于 Pulsar 的主要优点和缺点。
【问题讨论】:
标签: apache-kafka apache-pulsar
我最近都玩了一下,这是我收集到的。
中性:
专业脉冲星:
专业卡夫卡:
另请阅读:
【讨论】:
Apache Kafka 更成熟(它的存在时间更长)并且具有更高级别的 API(即 KStreams)。它很成熟,但是限制了流动性和灵活性,即在 github 上打开了大约 500 个 PR
Apache Pulsar 深入研究了 Apache Kafka 的设计决策,并结合了改进的设计和一组令人兴奋的功能,即 命名空间 主题的想法,并允许在名称空间级别上应用 ACL 或配额似乎是一个深刻的好主意,以提供更好的多租户支持。 Pulsar 的其他一些令人兴奋的特性是地理复制,以及排队和流式传输的统一
【讨论】:
我们需要一个具有持久主题、合理延迟和高吞吐量的流媒体平台。最近,我们评估了是否应该使用 Kafka 或 Pulsar,与 @nha 不同的是,我们现在支持 Apache Kafka。以下是我们的发现:
Pulsar - 专业人士
Pulsar - 缺点
Kafka - 专业人士
Kafka - 缺点
【讨论】:
Pulsar 是 Apache 软件基金会最新获得顶级地位的项目,它与另一个 ASF 项目 Kafka 进行了很多比较。
Pulsar 是在商用硬件上运行的高度可扩展、低延迟的消息传递平台。它提供了简单的主题发布-订阅和队列语义、轻量级计算框架、订阅者的自动游标管理以及跨数据中心复制。
同时,2018 年 Apache Kafka 报告对 600 多名用户进行了调查,发现数据管道和消息传递是该技术的两大用途。随着微服务架构的兴起,它的应用越来越广泛。
“这两个系统的用例有很大的重叠,但最初的设计非常不同,”其创建者之一 Matteo Merli 说,他后来成立了 Streamlio,一家提供快速数据平台的初创公司。
Yahoo 将 Pulsar 创建为单个多租户系统,以解决其与多个消息传递系统和多个团队部署它们的问题。
它于 2016 年以开源形式发布,并于 2017 年 6 月进入 ASF 孵化器。大约四年来,它已用于雅虎应用程序 Mail、Finance、Sports、Gemini Ads 和雅虎的分布式键值服务 Sherpa。
联合创始人郭思杰在一篇博文中这样总结了 Pulsar 与 Kafka:
“Apache Pulsar 将高性能流(Apache Kafka 追求)和灵活的传统队列(RabbitMQ 追求)结合到一个统一的消息传递模型和 API 中。 Pulsar 使用统一的 API 为您提供了一个用于流式传输和队列的系统,具有相同的高性能。”
Merli 说:“流式传输和排队是有区别的;有很多用例需要其中一种,但大多数人在不同的用例中都需要这两种。”
两层架构 Merli 说,两层设计是 Pulsar 的关键。有一个接收和传递消息的无状态代理层和一个有状态持久层,以及一组称为 bookies 的 Apache BookKeeper 存储节点,可提供低延迟的持久存储。
Merli 说,Pulsar 建立在拥有强大数据保证的理念之上。它是为共享消费而设计的,而 Kafka 不是。 Pulsar 使用户能够配置消息的保留期,即使在所有订阅都使用它们之后也是如此。
其分层架构和以段为中心的存储提供了关键优势:
您可以独立扩展代理或存储层。 由于代理是无状态的,因此可以快速将主题转移到其他代理。这开辟了一种有效的方式来平衡跨代理的流量。 在同一个分区上可以有多个消费者,您可以添加任意数量的消费者。 由于没有数据存储在本地,因此在扩容时无需复制分区数据,也无需重新平衡。创建分区主题时,Pulsar 会自动以不可知的方式将数据分区给消费者和生产者。
代理将消息数据发送到多个 BookKeeper 节点,这些节点将数据写入预写日志并将副本保存到内存中。在节点发出确认之前,日志被强制写入稳定存储,即使断电也能确保保留。主题分区可以扩展到整个 BookKeeper 集群的总容量,您可以通过简单地添加节点来扩展集群。
自从进入孵化器以来,重点一直是让 Pulsar 更容易上手。
Pulsar 2.0 版于 6 月发布,其中包括称为 Pulsar Functions 的“流原生”处理功能,它使用户能够在数据通过管道时使用 Java 或 Python 编写处理函数来处理数据。即将发布 2.2 版本,将提供交互式 SQL 查询功能。
Pulsar 提供多种语言和协议绑定,包括 Java、C++、Python 和 WebSockets,以及与 Kafka 兼容的 API。
进一步阅读:Apache Pulsar:它是 KAFKA 杀手吗?
Apache Pulsar : Is it a KAFKA Killer? Written By Bhagwan s. Soni
为什么我们应该选择 Apache Pulsar 而不是 Kafka?
Apache Pulsar 是 PubSub 的企业版,最初由 Yahoo 开发,现在由 Apache Software Foundation 提供支持。 Apache Pulsar 在过去 3 年多的生产系统上运行并证明了它的稳定性。
Apache Pulsar 几乎涵盖了 Kafka 提供给我们的所有功能,可能有不同的名称。 Pulsar 有很多特性,但我想强调其中一些有助于我们与 Kafka 区分开来 -
1} Apache Pulsar 为您提供 3 种类型的主题订阅: A} 独家 — 只有一个消费者会消费来自主题的数据 B} 共享 — 多个消费者将消费来自一个主题的数据 C} 故障转移 — 多个消费者,但在给定时间点只有一个消费者会消费数据。
2} 每个命名空间可以有一个或多个主题
3} 对 Multitanency 的强大支持
4} 跨多个集群的数据复制
5} 强大的消息持久性支持防止数据丢失
【讨论】: