Apache kafka 卡夫卡与阿帕奇脉冲星相比有哪些优点和缺点

Apache kafka 卡夫卡与阿帕奇脉冲星相比有哪些优点和缺点,apache-kafka,apache-pulsar,Apache Kafka,Apache Pulsar,雅虎开发了Pulsar,pub-sub消息传递系统,并使其开源。它现在是Apache的孵化项目。因为卡夫卡也有同样的用途。想知道,卡夫卡在脉冲星上的主要正负点。我最近对这两个点都做了一些研究,下面是我收集的资料 中性: 我打算让卡夫卡在社区/文档等方面获胜。但我无法轻松找到关于卡夫卡的问题的答案,有些问题很老而且令人困惑(针对遗留API)。但是Pulsar的文档已经足够好了,开发人员对Slack(hello@Matteo Merli:)非常敏感,如果你想深入内部,底层的部分(Zookeeper

雅虎开发了Pulsar,pub-sub消息传递系统,并使其开源。它现在是Apache的孵化项目。因为卡夫卡也有同样的用途。想知道,卡夫卡在脉冲星上的主要正负点。

我最近对这两个点都做了一些研究,下面是我收集的资料

中性:

  • 我打算让卡夫卡在社区/文档等方面获胜。但我无法轻松找到关于卡夫卡的问题的答案,有些问题很老而且令人困惑(针对遗留API)。但是Pulsar的文档已经足够好了,开发人员对Slack(hello@Matteo Merli:)非常敏感,如果你想深入内部,底层的部分(Zookeeper,Bookkeeper)也有不错的文档
  • 卡夫卡的目标是高吞吐量,脉冲星的目标是低延迟。两者都提供了控制它的设置
  • 这两种产品都已投入生产,并在多家公司进行了实战测试
专业脉冲星:

  • 根据我的经验,API更易于使用。在卡夫卡,经纪人是愚蠢的,消费者做他们认为合适的沟通结构的工作。这种灵活性的代价是卡夫卡的使用者必须了解如何将各个部分装配在一起。我猜预期的好处是增加了灵活性,但由于Pulsar能够复制Kafka Consumers API(并且代码相当少),因此我将其视为Pulsar的专业版
  • 您可以做一些不容易做的事情(在卡夫卡中可能不可能做到):多租户(安全性、隔离性……),资源管理(主题限制、配额),地理复制
  • 它有一些卡夫卡目前缺乏的功能,比如寻找特定的MessageId
  • 脉冲星可以扩展到数百万个主题,而卡夫卡则受到Zookeeper中数据结构方式的限制
  • 更容易部署。一个独立的Pulsar将启动它自己的本地Zookeeper,我个人觉得配置更容易理解
  • 用Java编写,而不是传统Scala和Java代码的混合。我还发现代码库组织得很好,而且更容易理解。一部分是因为它依赖于动物园管理员和簿记员,这是他们自己的文档/社区/开发人员等的外部项目(请注意,这些也在Apache基金会,也来自雅虎,所以它们一起工作得很好)。
支持卡夫卡:

  • 卡夫卡有一些类似卡夫卡流的东西(从未使用过,所以我不能说是否有类似的东西)
另见:


ApacheKafka更为成熟(存在时间更长),并且具有更高级别的API(即kstream)。然而,它的成熟度限制了流动性和灵活性,即github上约500个开放PR


Apache Pulsar深入研究了Apache Kafka的设计决策,并将改进的设计和一系列令人兴奋的功能结合在一起,即名称空间主题的想法,允许在名称空间级别应用ACL或配额似乎是一个非常深刻的好主意,提供更好的多租户支持。Pulsar的其他一些令人兴奋的功能是地理复制,以及排队和流媒体的统一。我们需要一个具有持久主题、合理延迟和高吞吐量的流媒体平台。最近,我们评估了我们应该选择卡夫卡还是脉冲星,与@nha不同,我们现在支持阿帕奇·卡夫卡。以下是我们的调查结果:

脉冲星-Pros

  • 功能丰富-持久性/非持久性主题、多租户、ACL、多DC复制等
  • 更灵活的客户端API-包括CompletableFutures、fluent接口等
  • java客户端组件是线程安全的-使用者可以确认来自不同线程的消息
脉冲星-Cons

  • java客户端几乎没有javadoc
  • 小型社区-目前有8个问题
  • messageId概念与簿记员联系在一起-与卡夫卡偏移量(连续的数字序列)相比,消费者无法轻松定位自己的主题
  • 读者无法轻松阅读主题中的最后一条消息-需要将所有消息浏览到底
  • 没有交易
  • 更高的操作复杂性-Zookeeper+代理节点+簿记员-所有群集
  • 延迟有问题-代理节点和簿记员之间有一个额外的远程调用(与Kafka相比)
Kafka-Pros

  • 非常丰富和有用的javadoc
  • 卡夫卡河
  • 成熟而广泛的社区
  • 在生产较少的组件中操作更简单-代理节点还提供存储
  • 事务-主题中的原子读写
  • 偏移量形成一个连续的序列-消费者可以很容易地找到最后一条消息
卡夫卡-反对党

  • 使用者无法确认来自不同线程的消息
  • 无多租户
  • 没有强健的多DC复制-(在融合企业中提供)


脉冲星,Apache软件基金会的最新项目,达到顶层地位,与卡夫卡,另一个ASF项目进行了大量的比较。 Pulsar是一个在商品硬件上运行的高度可扩展、低延迟的消息传递平台。它提供了有关主题的简单发布-订阅和队列语义、轻量级计算框架、订阅者的自动游标管理以及跨数据中心复制

与此同时,2018年Apache Kafka报告调查了600多名用户,发现数据管道和消息传递是该技术的两大用途。随着微服务体系结构的兴起,它得到了越来越多的使用

“在美国有很大的重叠