Kafka与Apache脉冲星相比有哪些优点和缺点

nc1teljy  于 2021-06-07  发布在  Kafka
关注(0)|答案(4)|浏览(411)

关闭。这个问题是基于意见的。它目前不接受答案。
**想改进这个问题吗?**更新这个问题,这样就可以通过编辑这篇文章用事实和引文来回答。

两年前关门了。
改进这个问题
雅虎开发了pulsar,pub-sub消息传递系统,并将其开源。它现在是apache的孵化项目。因为Kafka也有同样的用途。想知道,Kafka在脉冲星上的主要正负点。

j91ykkif

j91ykkif1#

来源
脉冲星,Apache软件基金会的最新项目,达到顶层地位,与Kafka,另一个ASF项目进行了大量的比较。
pulsar是一个高度可扩展的、低延迟的消息传递平台,运行在商用硬件上。它提供了简单的主题发布子和队列语义、轻量级计算框架、订阅者的自动游标管理以及跨数据中心复制。
与此同时,2018年的apachekafka报告调查了600多名用户,发现数据管道和消息传递是这项技术的两大用途。随着微服务体系结构的兴起,它得到了越来越多的应用。
“这两个系统的用例有很大的重叠,但最初的设计非常不同,”matteo merli说,他是该系统的创造者之一,后来成立了streamlio,这是一家提供快速数据平台的初创公司。
雅虎将pulsar创建为一个单一的多租户系统,以解决多个消息传递系统和多个团队部署这些系统的问题。
2016年作为开源发布,2017年6月进入asf孵化器。大约四年来,它一直被用于雅虎的邮件、金融、体育、双子座广告和雅虎的分布式键值服务夏尔巴。
联合创始人郭思杰在博客中这样总结了pulsar vs.kafka:
apachepulsar将高性能流(apachekafka追求的)和灵活的传统队列(rabbitmq追求的)结合到统一的消息模型和api中。pulsar为您提供了一个流媒体和排队系统,使用统一的api,具有相同的高性能。”
梅里说:“流媒体和排队是有区别的;有很多用例需要一个或另一个,但大多数人都需要两个用于不同的用例。”
两层结构两层设计是脉冲星的关键,梅里说。有一个接收和传递消息的无状态代理层,还有一个有状态持久性层,有一组称为bookies的apache bookkeeper存储节点,提供低延迟持久存储。
merli说,pulsar建立在拥有强大数据保障的理念之上。它是为共享消费而设计的,而Kafka不是。pulsar允许用户为消息配置一个保留期,即使在所有订阅都使用它们之后。
它的分层体系结构和以段为中心的存储提供了关键优势:
您可以独立地扩展代理或存储层。由于代理是无状态的,因此可以将一个主题快速移动到其他代理。这为平衡经纪人之间的流量开辟了一条有效途径。可以在同一分区上有多个使用者,并且可以添加任意数量的使用者。由于没有数据存储在本地,因此无需在扩展容量时复制分区数据,也无需重新平衡。创建分区主题时,pulsar会以不可知的方式自动将数据分区给消费者和生产者。
代理将消息数据发送到多个bookkeeper节点,这些节点将数据写入预写日志,并将副本保存到内存中。在节点发出确认之前,日志将强制写入稳定存储,这样即使断电也能确保保留。主题分区可以扩展到整个bookkeeper集群的总容量,您可以通过简单地添加节点来扩展集群。
自从进入孵化器,一个关键的重点是使它更容易开始与脉冲星。
pulsar的2.0版本于6月份发布,包括一个名为pulsar functions的“流本机”处理功能,该功能允许用户在数据通过管道时用java或python编写处理函数。版本2.2即将发布,它将具有交互式sql查询功能。
pulsar提供多种语言和协议绑定,包括java、c++、python和websockets,以及与kafka兼容的api。
进一步阅读:Apache脉冲星:是Kafka杀手吗?
Apache脉冲星:是Kafka杀手吗?作者:bhagwan s。索尼

为什么我们要选择Apache脉冲星而不是Kafka?
Apache脉冲星是PUBSUB的一个企业版,最初由雅虎开发,现在由Apache软件基金会支持。apachepulsar在过去3年多的生产系统上运行,证明了它的稳定性。
apachepulsar几乎涵盖了kafka提供给我们的所有特性,可能有不同的名称。脉冲星有很多特点,但我想强调其中一些将有助于我们与Kafka区别-
1} apachepulsar为您提供了3种类型的主题订阅:a}独占 — 只有一个使用者将使用主题b}共享的数据 — 多个使用者将使用主题c}故障转移中的数据 — 不止一个使用者,但在给定的时间点只有一个使用者会使用数据。
2} 每个

fcipmucu

fcipmucu2#

apachekafka更加成熟(它已经存在了很长时间),并且有更高级别的api(即kstream)。但是,它的成熟度限制了流动性和灵活性,即在github上大约有500个open pr
ApachePulsar深入研究了ApacheKafka的设计决策,并结合了一个改进的设计和一组令人兴奋的功能,即名称空间主题的思想,允许acl或配额应用于名称空间级别似乎是一个非常深刻的好主意,以提供更好的多租户支持。脉冲星的其他一些令人兴奋的特性是地理复制,以及排队和流的统一

fkvaft9z

fkvaft9z3#

我最近和这两个都玩过,下面是我收集的。
中性:
我本打算让Kafka在社区/文档等方面获胜,但我无法轻易找到关于Kafka的问题的答案,有些问题很旧而且令人困惑(针对遗留api)。但是pulsar文档已经足够好了,开发人员对slack非常敏感(hello@matteo merli:)),如果您想深入内部,底层的部分(zookeeper,bookkeeper)也有不错的文档。
Kafka的目标是高吞吐量,低延迟脉冲星。两者都提供了控制它的设置。
这两家公司都已做好生产准备,并在数家公司进行了实战测试
专业脉冲星:
根据我的经验,api更容易使用。在Kafka,经纪人是哑巴和消费者做的工作,结构沟通,因为他们认为合适的。这种灵活性的代价是Kafka的使用者必须了解如何将这些片段组合在一起。我想预期的好处是增加了灵活性,但由于pulsar能够复制kafka消费者api(而且代码相当少),因此我将其作为pulsar的专业工具。
您可以做一些不容易做到的事情(或者在kafka中可能不可能做到):多租户(安全性、隔离……)、资源管理(主题限制、配额)、地理复制
它有一些Kafka目前缺乏的特性,比如寻找特定的messageid
脉冲星可以扩展到数百万个主题,而Kafka在zookeeper中构建数据的方式受到了限制
更容易部署。一个独立的pulsar将启动它自己的本地zookeeper,我个人觉得配置更容易理解
用java编写,而不是传统scala和java代码的混合。我还发现代码库组织得很好,而且更容易理解。部分原因是它依赖于Zookeeper和簿记员,这是他们自己的文档/社区/开发人员等的外部项目(请注意,这些也在Apache基金会,也来自雅虎,所以它们一起工作得很好)。
支持Kafka:
Kafka有一些类似Kafka流的东西(从未使用过,所以我不能说是否有类似的东西)
另请阅读:
https://news.ycombinator.com/item?id=12453080
https://news.ycombinator.com/item?id=15601222
https://streaml.io/blog/why-apache-pulsar/
https://kafka.apache.org/uses

k4aesqcs

k4aesqcs4#

我们需要一个具有持久主题、合理延迟和高吞吐量的流媒体平台。最近,我们评估了我们应该选择Kafka还是脉冲星,与@nha不同的是,我们现在支持Apache·Kafka。以下是我们的发现:
脉冲星-专业
功能丰富-持久性/非持久性主题、多租户、ACL、多dc复制等。
更灵活的客户端api-包括completablefutures、fluent接口等。
java客户端组件是线程安全的—使用者可以确认来自不同线程的消息
脉冲星-cons
java客户端几乎没有javadoc
小型社区-目前有8个问题
与簿记员联系在一起的messageid概念-与kafka offset(连续的数字序列)相比,消费者不能轻易地将自己定位在这个主题上。
读者不能轻易地阅读主题的最后一条信息-需要浏览所有的信息到最后。
无交易记录
更高的操作复杂性—zookeeper+broker节点+bookkeeper—所有群集
延迟有问题-broker节点和bookkeeper之间有一个额外的远程调用(与kafka相比)
Kafka-职业
非常丰富有用的javadoc
Kafka河
成熟广泛的社区
在生产较少的组件中操作更简单—代理节点还提供存储
事务-主题内的原子读写
偏移量形成一个连续的序列-使用者可以很容易地寻找最后一条消息
Kafka-囚犯
使用者无法确认来自不同线程的消息
无多租户
没有强健的多dc复制-(在confluent enterprise中提供)

相关问题