开发者社区> dasein58> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

选择Pulsar而不是Kafka的5个原因

简介:   datastax.·7分钟阅读   作者的注意事项:我最初在2022年发布了这篇博客文章,而我是Kesque的首席执行官,是Apache Pulsar的实时消息服务,云本机分布式消息传递和流式媒体平台。这是一个早期帖子的后续行动,“选择Apache Pulsar的7个理由选择Apache Kafka。”由于这两个帖子的原因,包括Kesque的收购。然而,选择Pulsar的原因没有改变。   一段时间后,我写了一个关于7个理由的帖子,我们选择Apache pulsar过度Apache Kafka。从那时起,我一直在研究一个详细的报告,比较Kafka和Pulsar,与开源Pulsar项目的
+关注继续查看

  datastax.·7分钟阅读

  作者的注意事项:我最初在2022年发布了这篇博客文章,而我是Kesque的首席执行官,是Apache Pulsar的实时消息服务,云本机分布式消息传递和流式媒体平台。这是一个早期帖子的后续行动,“选择Apache Pulsar的7个理由选择Apache Kafka。”由于这两个帖子的原因,包括Kesque的收购。然而,选择Pulsar的原因没有改变。

  一段时间后,我写了一个关于7个理由的帖子,我们选择Apache pulsar过度Apache Kafka。从那时起,我一直在研究一个详细的报告,比较Kafka和Pulsar,与开源Pulsar项目的用户交谈,并与我们管理的Pulsar服务的用户交谈Kesque。我意识到的是,我错过了第一篇文章的一些原因。所以,我以为我会做一个增加到列表的后续帖子。

  在潜入新的原因之前,让我们快速回顾上一篇文章中提到的七个:

  统一流媒体和消息队列 - 在一个平台中的Kafka和Rabbitmq。分区是可选的 - 如果您不想,则使用pulsar,您不需要使用分区删除分区。(我不想。)分布式日志 - Pulsar日志是水平扩展的,因为它是分布式的。我听到耳朵里的音乐吗?无状态的代理 - 云原住民梦想场景。我在哪里放置自动缩放者?本机地理复制 - 任何人和我的意思是任何人,都可以获得地理复制权。它更快 - 测试证明这一点。所有Apache软件基金会开源 。

  那些是前七个原因。这些似乎很多,但我发现了一些。让我们进入他们。

  1.支持多租户

  我真的应该在第一篇文章中谈论多租户,因为这是一个大的问题。即使您没有计划建立托管Pulsar活动(以及为什么我们已经为您建立了一个?),除非您是隐士,否则将有多个团队在使用您的多个项目上工作消息传递基础架构。必须为每个团队或项目旋转群集是一种痛苦。它也很贵。

  使用Pulsar,您可以拥有多个租户,那些租户可以有多个名称空间来保持所有组织的东西。添加到每个命名空间的访问控制,配额和评分限制,您可以想象我们所有人都可以使用这个群集。我们不仅可以想象这个未来,但Kafka也可以想象它。您可以在KAFKA改进提案(KIP)KIP-37中阅读它。现在已经讨论了一段时间。

  我们有一个霸权吗?复制

  您想确保您的邮件永远不会丢失,因此您将消息传递系统配置为在出现问题时制作每条消息的两个或三个副本。

  Kafka使用以下领导型来实现这一目标。领导者存储消息,追随者制作它的副本。一旦足够的追随者承认他们已经得到它,Kafka很开心。Pulsar使用仲裁模型。它将消息发送到一堆节点,一旦超过他们承认他们已经得到它,Pulsar很高兴。

  法定复制更为民主,没有这一领导者跟随者层次结构。大多数总是赢,所有选票都是平等的。但这对技术无关紧要。重要的是,致法量复制往往会随着时间的推移提供更一致的行为。这可能解释了为什么Pulsar提供更一致的延迟性能。

  如果您想进入Kafka和Pulsar Latency的细节,请查看我写的博客文章。(这很长。不要说我没有警告你。)哦,Kafka一直在考虑Quorum复制来提高延迟一致性。检查KIP-250是否讨论。

  3.分层存储,事件订阅的梦想

  关于kafka这样的流系统的伟大事物之一是它能够重播已经消耗的消息。如果您第一次喜欢这些消息,请重播它们以纠正某些内容或构建周围的新应用很有趣。

  如果你非常喜欢这些消息,你想永远保持它们吗?喜欢,说你是否正在做事。这听起来像是一个很好的主意,但永远是一个强大的长时间,永远存储邮件可以变得昂贵 - 特别是如果你在那些保持你的消息传递系统嗡嗡声的高性能SSD上。

  如果你可以移动那些旧消息 - 你需要保持的旧消息,因为你可能需要它们,那么有一天需要它们 - 更便宜的存储解决方案?如果你可以使用像亚马逊S3桶这样的便宜的云存储,那不是很棒吗?

  你可能会猜到我在这里去哪里。使用Pulsar分层存储,您可以自动将尘土飞扬的旧消息推入实际上无限,廉价的云存储,并类似于您执行那些较新的新鲜的消息。

  我敢打赌,Kafka希望拥有这个功能。你猜到了,他们会。它在KIP-405中描述。

  4.端到端加密

  显然,安全性很重要,您希望将您的信息保证免于窥探。当然,您将在游戏论坛客户端和消息传递系统之间使用TLS(在传输中加密)。

  当您这样做时,消息传递系统必须解密连接,因此它可以弄清楚客户端试图说的。然后将在磁盘上保存未加密的消息。当然,您将坚持认为磁盘被加密,以便如果有人窃取磁盘,您的消息将是安全的(在休息时加密)。但在这两种情况下,消息传递系统都有对您的数据的键。如果没有,它将处理难以理解的GobbledyGook流。

  在许多情况下,这种加密级别足够好。但如果你想绝对确定没有人可以偷看你的消息,你需要端到端加密。Producer在使用与将收到消息的消费者共享的密钥发送键之前加密消息。当消息保存在消息传递系统的磁盘上时,它加密,消息传递系统没有键。消息系统可以执行其工作。但是您的消息是超级安全的GobbledyGook到消息传递系统。

  Pulsar可以在其Java客户端中进行端到端加密。Kafka一直在谈论在KIP-317中做它。

  代理平衡行为

  在我的最后一篇文章中,我谈论了Pulsar活动代理是无状态的,这很好。但实际上还有这个故事。

  无状态组件是可取的,因为当一个人超载时,您只需添加另一个“来处理负载即可。当新客户端连接时,它们可以被定向到新实例。但这并没有帮助首先被过载的实例。您需要将一些工作从超载实例转移到新的新鲜的工作。

  换句话说,您需要重新平衡负载。

  Pulsar为您自动进行代理负载。它监控CPU,内存和网络(不是磁盘;我提到代理是无论如何的吗?)代理的使用,并将移动负荷以保持平衡。这意味着您不必添加那个新代理,直到您使用所有代理的容量 - 而不是因为其中一个热运行。

  您可以使用Kafka进行代理负载平衡。但是,您将必须安装另一个包,例如LinkedIn的巡航控制。或者,如果您喜欢(最终)支付东西,您也可以使用Confluent的重平衡器工具。

  社区和生态系统

  我上一篇文章的批评之一是我没有提到Kafka社区和生态系统的大小和丰富性。这是一个公平的一点。

  在社区和生态系统类别中,Kafka强于Pulsar。Kafka有一个五年的首页开始作为一个开源项目,因此它只会推出它将拥有更大的社区,更多相关项目以及堆栈溢出的更多答案。

  我所能说的是,脉冲节社区正在增长,人们经常促进新的组成部分和集成,社区休闲频道的人们是友好和支持的。

  实际上,我可以说还有一件事:很明显,很多Pulsar是由Kafka启发和通知的,Pulsar站在巨人的肩膀上。Kafka项目和社区赢得很多信誉和尊重。我知道它有时会听起来像是我不尊重Kafka,但我真的很兴奋Pulsar取得的成绩。

  合法的Kafka替代品

  在这篇文章与最后一个之间,我最多有十几个理由选择Pulsar。很酷的是,我潜入pulsar的更深,我发现的原因越多。因此,在将来可能需要在这个主题上成为第三个博客帖子。敬请关注。

  我认为这很清楚,Pulsar是Kafka的合法替代品。Pulsar支持与Kafka相同的大多数功能,但有几个的优势,并且随着越来越多的人们了解它的势头。

  如果您正在评估流和/或队列系统,您可以看看Pulsar。这很简单。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
kafka安装与测试
基于linux-Centos7.0环境先进行测试学习 Producer即生产者,向Kafka集群发送消息,在发送消息之前,会对消息进行分类,即Topic, Topic即主题,通过对消息指定主题可以将消息分类,消费者可以只关注自己需要的Topic中的消息 Consumer即消费者,消费者通过与kafka集群建立长连接的方式,不断地从集群中拉取消息,然后可以对这些消息进行处理。
783 0
Linux Ubuntu 18.04安装Kafka消息队列MQ中间件
Kafka是开源高并发百万级消息队列MQ中间件,在互联网、物联网IOT、大数据、电商、直播、游戏、导航领域广泛使用。 本文讲解最新的Kafka在Linux系统上的详细安装步骤。
1613 0
Linux Ubuntu实战安装Kafka集群管理器 Kafka Manager
Linux Ubuntu实战安装Kafka集群管理器 Kafka Manager经验分享,详细步骤。
1663 0
kafka的安装与启动运行
kafka简介 kafka是一种高吞吐量的分布式发布订阅消息系统。 环境搭建 1.首先安装JDK 下载地址https://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.
1042 0
【教程】Linux下如何下载与安装Kafka ?
Kafka是java生态圈中的一员,运行在java虚拟机上,按Kafka官方说明,java环境推荐Java8;Kafka需要Zookeeper保存集群的元数据信息和消费者信息。Kafka一般会自带Zookeeper,但是从稳定性考虑,应该使用单独的Zookeeper,而且构建Zookeeper集群。
7695 0
Kafka概述及安装 | 带你读《SpringBoot实战教程》之三十七
Apache Kafka是一个分布式发布 - 订阅消息系统和一个强大的队列,可以处理大量的数据,并使您能够将消息从一个端点传递到另一个端点。 Kafka适合离线和在线消息消费。 Kafka消息保留在磁盘上,并在群集内复制以防止数据丢失。 Kafka构建在ZooKeeper同步服务之上。 它与Apache Storm和Spark非常好地集成,用于实时流式数据分析。
0 0
Linux下kafka之C/C++客户端库librdkafka的编译,安装以及函数介绍(1)
Linux下kafka之C/C++客户端库librdkafka的编译,安装以及函数介绍
0 0
Kafka的安装与入门基础(上)
Kafka的安装与入门基础(上)
0 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
消息队列 Kafka 版差异化特性
立即下载
任庆盛|Flink CDC + Kafka 加速业务实时化
立即下载
Java Spring Boot开发实战系列课程【第16讲】:Spring Boot 2.0 实战Apache Kafka百万级高并发消息中间件与原理解析
立即下载