热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Kafka比ApachePulsar有什么优缺点

如何解决《Kafka比ApachePulsar有什么优缺点》经验,为你挑选了3个好方法。

雅虎开发了Pulsar,pub-sub消息系统,并将其作为开源软件.它现在是Apache的孵化项目.由于卡夫卡也用于同一目的.想知道,卡夫卡超过Pulsar的主要加分和减分.



1> nha..:

我最近和两个人玩了一下,这就是我收集的内容.

中性:

我打算让Kafka赢得社区/文档等.但是我无法轻易找到对Kafka的问题的回复,有些陈旧而且令人困惑(针对遗留API).但是Pulsar文档已经足够好了,开发人员对Slack(hello @Matteo Merli :))非常敏感,而底层的部分(Zookeeper,Bookkeeper)也有很好的文档,如果你想潜入内部.

Kafka旨在实现高吞吐量,Pulsar的低延迟.两者都提供控制它的设置.

两家公司都已准备好生产并在几家公司中经过严峻考验

Pro脉冲星:

根据我的经验,API更易于使用.在卡夫卡,经纪人是愚蠢的,消费者在他们认为合适的情况下完成了构建沟通的工作.这种灵活性是以Kafka的用户必须了解如何使这些部件组合在一起为代价的.我想预期的好处是增加了灵活性,但是由于Pulsar能够复制Kafka Consumers API(并且代码相当少),我将其作为专业人士给予Pulsar.

你可以做一些不容易做的事情(或者在Kafka中可能不可能):多租户(安全,隔离......),资源管理(主题限制,配额),地理复制

它有一些Kafka目前缺乏的功能,比如寻找特定的MessageId

Pulsar扩展到数百万个主题,其中Kafka受到Zookeeper中数据结构的限制

部署更容易.一个独立的Pulsar将启动它自己的本地Zookeeper,我个人发现配置更容易理解

用Java编写,而不是传统的Scala和Java代码.此外,我发现代码库组织良好,更容易遵循.部分是因为它依赖于Zookeeper和Bookkeeper,它们是具有自己的文档/社区/开发人员等的外部项目(请注意,这些也在Apache基础中,也来自Yahoo,因此它们可以很好地协同工作).

Pro Kafka:

Kafka有像Kafka Streams一样建立起来的东西(从未使用它,所以我不能说是否有相同的东西)

另请阅读:

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


我很感激跪拜者的解释.
@ c69当然有偏见:)这是我的答案,你可能会有不同的意见,我很乐意考虑其他亲Kafka积分.让我偏向的是我首先和Kafka一起玩(并且没有计划进一步观察).但有些事情令人沮丧.然后我听说了脉冲星,它更适合(至少对我来说).
亲Pulsar:6项,亲Kafka:1项.我没有倒闭,但这个答案看起来有点偏颇.

2> Antonios Cha..:

Apache Kafka更成熟(它已存在更长时间)并且具有更高级别的API(即KStream).它是成熟的,但是限制了流动性和灵活性,即在github上打开~500

Apache Pulsar深入研究了Apache Kafka的设计决策,并结合了改进的设计和一系列令人兴奋的功能,即命名空间主题的概念,并允许ACL或配额应用于名称空间级别,这似乎是非常好的想法,提供更好的多租户支持.Pulsar的其他一些令人兴奋的功能是地理复制,以及排队和流媒体统一



3> Milos Gregor..:

我们需要一个具有持久主题,合理延迟和高吞吐量的流媒体平台.最近,我们评估了我们是否应该选择Kafka或Pulsar,而不像@nha,我们现在支持Apache Kafka.以下是我们的发现:

Pulsar - 优点

功能丰富 - 持久性/非持久性主题,多租户,ACL,多DC复制等.

更灵活的客户端API - 包括CompletableFutures,流畅的界面等.

java客户端组件是线程安全的 - 消费者可以确认来自不同线程的消息

Pulsar - 缺点

java客户端几乎没有javadoc

小社区 - 目前有8个stackoverflow问题

与BookKeeper相关联的messageId概念 - 与连续数字序列的Kafka偏移相比,消费者无法轻易地将自己定位于该主题.

Reader无法轻松阅读主题中的最后一条消息 - 需要浏览所有消息到最后.

没有交易

更高的操作复杂性 - Zookeeper + Broker节点+ BookKeeper - 全部集群

延迟可疑 - Broker节点和BookKeeper之间有一个额外的远程调用(与Kafka相比)

卡夫卡 - 职业选手

非常丰富和有用的javadoc

卡夫卡流

成熟和广泛的社区

在生产中操作更简单 - 更少的组件 - 代理节点也提供存储

事务 - 主题内的原子读取和写入

抵消形成一个连续的序列 - 消费者可以轻松寻求最后的消息

卡夫卡 - 缺点

消费者无法确认来自不同线程的消息

没有多租户

没有强大的多DC复制 - (在Confluent Enterprise中提供)


>与BookKeeper相关的messageId概念 - 与连续数字序列的Kafka偏移相比,消费者无法轻易地将自己定位于该主题.---消费者可以使用messageId定位任何消息.MessageId也可以存储在Pulsar之外,用于回滚到特定的消息.
2.(最后一个条目)Reader可以指定MessageId.latest将自己定位到流的末尾
4(等待时间有问题)-这是不正确的。首先,Kafka还具有额外的网络跃点(复制到另一个代理时)。其次,与Kafka相比,具有BookKeeper的Pulsar可以保证比Kafka更低的延迟,甚至可以提供比Kafka内存中页面缓存方法更高的持久性。消息传递系统的延迟通常由磁盘访问模式而不是网络控制。
3.(操作复杂性)-对于小型集群,建议的部署模式是将经纪人和簿记员结合在一起。与Kafka的组件数量相同
1个额外的网络跃点约为0.1毫秒,Pulsar可以保证99pct的延迟小于5毫秒,而Kafka通常为15毫秒(无数据持久性),峰值为100毫秒(对于99pct)。您可以使用OpenMessaging基准测试不同的消息传递系统:http://openmessaging.cloud/docs/benchmarks/
@MatteoMerli您如何有效地使用主题的最新发布消息?恕我直言,这不可能不浏览整个主题,而在Kafka中,您只想寻找`lastOffset -1`。
推荐阅读
  • 基于,docker,快速,部署,多,需求,spark ... [详细]
  • 本文介绍了使用Spark实现低配版高斯朴素贝叶斯模型的原因和原理。随着数据量的增大,单机上运行高斯朴素贝叶斯模型会变得很慢,因此考虑使用Spark来加速运行。然而,Spark的MLlib并没有实现高斯朴素贝叶斯模型,因此需要自己动手实现。文章还介绍了朴素贝叶斯的原理和公式,并对具有多个特征和类别的模型进行了讨论。最后,作者总结了实现低配版高斯朴素贝叶斯模型的步骤。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 20211101CleverTap参与度和分析工具功能平台学习/实践
    1.应用场景主要用于学习CleverTap的使用,该平台主要用于客户保留与参与平台.为客户提供价值.这里接触到的原因,是目前公司用到该平台的服务~2.学习操作 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 使用在线工具jsonschema2pojo根据json生成java对象
    本文介绍了使用在线工具jsonschema2pojo根据json生成java对象的方法。通过该工具,用户只需将json字符串复制到输入框中,即可自动将其转换成java对象。该工具还能解析列表式的json数据,并将嵌套在内层的对象也解析出来。本文以请求github的api为例,展示了使用该工具的步骤和效果。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • FeatureRequestIsyourfeaturerequestrelatedtoaproblem?Please ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了StartingzookeeperFAILEDTOSTART相关的知识,希望对你有一定的参考价值。下载路径:https://ar ... [详细]
  • Android日历提醒软件开源项目分享及使用教程
    本文介绍了一款名为Android日历提醒软件的开源项目,作者分享了该项目的代码和使用教程,并提供了GitHub项目地址。文章详细介绍了该软件的主界面风格、日程信息的分类查看功能,以及添加日程提醒和查看详情的界面。同时,作者还提醒了读者在使用过程中可能遇到的Android6.0权限问题,并提供了解决方法。 ... [详细]
  • Java如何导入和导出Excel文件的方法和步骤详解
    本文详细介绍了在SpringBoot中使用Java导入和导出Excel文件的方法和步骤,包括添加操作Excel的依赖、自定义注解等。文章还提供了示例代码,并将代码上传至GitHub供访问。 ... [详细]
  • Hadoop源码解析1Hadoop工程包架构解析
    1 Hadoop中各工程包依赖简述   Google的核心竞争技术是它的计算平台。Google的大牛们用了下面5篇文章,介绍了它们的计算设施。   GoogleCluster:ht ... [详细]
  • 开发笔记:读《分布式一致性原理》JAVA客户端API操作2
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了读《分布式一致性原理》JAVA客户端API操作2相关的知识,希望对你有一定的参考价值。创 ... [详细]
  • TableAPI报一下异常:FieldtypesofqueryresultandregisteredTableSink
    报错信息如下:Exceptioninthread“main”org.apache.flink.table.api.ValidationException:Fieldtypesofq ... [详细]
author-avatar
夜晨在行动
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有