Kafka 和 Pulsar到底有什么不同?

CTO问我Pulsar到底能不能取代Kafka? Pulsar是一款分布式发布/订阅消息平台,近两年非常火,被称为下一代的消息流平台,大有取代Kafka的势头。今天我们就来比较一下Pulsar跟Kafka。 历史背景 Pulsar源自Yahoo,于2016年开源并捐献给Apache基金会,并在2018年9月升级成为Apache顶级项目。 Kafka最初由Linkedin开发,并于2010年贡献给了Apache基金会,之后成为Apache顶级项目。 架构 Kafka Kafka架构由broker和zookeeper组成,如下图: [1] 阅读详情

导言

Kafka 和 Pulsar 经常被拿来比较,因为它们都是数据平台,都以能够处理高吞吐量、低延迟的 数据流.它们使企业能够构建可扩展、容错的数据管道和实时处理应用程序。它们的架构都是基于生产者-消费者模式构建的,这意味着它们都适用于各种用例,并能与现代数据生态系统无缝集成。

我撰写了这篇文章,以帮助您了解这两种解决方案的主要异同。我们将对 Kafka 和 Pulsar 进行比较,重点关注以下几个方面:

  • 架构
  • 可扩展性、延迟和耐用性等运行属性
  • 开发人员体验、社区和生态系统
  • 许可、部署选项和托管产品

最后,我希望您能更清楚地了解每个平台的独特功能,以及哪个平台最适合贵组织的需求。

Apache Kafka 概述

Kafka 是一个分布式事件流平台,旨在处理高速、大容量和容错数据流。它最初由 LinkedIn 开发,后来捐赠给了 Apache 软件基金会。Kafka 已迅速成为构建实时数据管道、事件驱动架构和微服务应用程序的热门选择。

核心能力

  • 发布和订阅记录流。
  • 以容错和持久的方式存储记录流。
  • 与配套服务协同工作,在记录发生时处理记录流(Kafka Streams 和 ksqlDB)。

主要特点

  • 为实时数据流提供高吞吐量、低延迟的消息传递。
  • 支持数据分区和复制的可扩展架构。
  • 采用分布式容错设计,具有很强的耐用性保证。
  • 利用 Kafka 生态系统(Kafka Streams 和 ksqlDB)的补充服务实现流处理功能。
  • 通过 Kafka Connect 提供丰富的连接器和集成生态系统。
  • 活跃的开源社区,支持多种编程语言。

Apache Pulsar 概述

Pulsar 是一个分布式消息传递系统,旨在处理高性能、低延迟的消息传递和数据流。Pulsar 最初由雅虎创建,后来捐赠给了阿帕奇软件基金会,目前正在成为构建实时数据管道和事件驱动架构的有力选择。

核心能力

  • 支持发布/子消息传递和消息队列。
  • 以容错和持久的方式保留信息流。
  • 本机支持多租户。

主要特点

  • 适合实时数据流的高吞吐量、低延迟信息传送。
  • 可扩展的多层架构,将存储层与服务层分开。
  • 通过容错设计(包括地理复制)确保数据的持久性。
  • 基本的内置流处理功能(Pulsar 功能)。
  • 通过 Pulsar IO 提供规模适中的连接器和集成生态系统。
  • 通过官方和第三方客户端库,支持多种编程语言。

Pulsar 与 Kafka:架构比较

现在我们来回顾一下 Pulsar 和 Kafka 的架构,以了解它们的异同。

Apache Kafka 架构

在高层次上,Kafka 架构由三个主要元素组成:生产者、消费者和经纪人。生产者生成数据并发送给经纪商,而消费者则读取经纪商摄取的数据。

经纪人在 Kafka 集群上运行,而生产者和消费者则与系统完全分离。每个经纪商将生产者发送的实际数据存储在主题(属于同一组/类别的消息集合)中。这些主题可分为多个分区进行优化。数据分区具有容错、可扩展性和并行性等优点。此外,每个代理可能只包含一个主题的部分分区,其余分区则分配给其他代理。这种方法有助于平衡经纪人之间的工作量。为了提高可靠性,可以将 Kafka 集群配置为不同主题的副本,从而在代理不可用时限制停机时间。

在上图中,你还可以看到一个 ZooKeeper 组件,它负责诸如

  • 存储有关 Kafka 集群的元数据,例如有关主题、分区、代理和副本的信息。
  • 管理和协调 Kafka 代理,包括领导者选举。
  • 为安全目的维护访问控制列表(ACL)。

计划 完全移除 ZooKeeper 依赖关系。(预计将于 2024 年 4 月发布)开始完全移除对 ZooKeeper 的依赖。取而代之的是一种名为 KRaft 的新机制(实际上它已经可以投入生产)。KRaft 无需在每个 Kafka 集群旁边运行一个 ZooKeeper 集群,而是将元数据管理的责任转移到 Kafka 本身。这简化了架构,降低了操作复杂性,并提高了可扩展性。

还计划 为 Kafka 引入分层存储方法的分层存储方法。本地层将使用 Kafka Brokers 上的本地磁盘来存储数据。其设计目的是短时间(如几小时)保留数据。与此同时,远程存储将使用 Hadoop Distributed File System(HDFS)和 Amazon S3 等系统来长期存储数据(数天、数月等)。

Apache Pulsar 架构

与 Kafka 类似,Pulsar 的架构包括经纪人、生产者和消费者。经纪商在 Pulsar 集群上运行,而生产者和消费者则与系统完全分离。每个经纪人管理生产者在主题中发送的实际数据。就像 Kafka 的情况一样,这些主题可以划分成许多分区,从而提供容错、可扩展性和并行性等优势。

ZooKeeper 也出现在 Pulsar 的架构中。它被用于各种任务,包括配置管理、节点之间的协调以及维护 Pulsar 集群的元数据。如前所述,Kafka 正在从 ZooKeeper 迁离,取而代之的是 KRaft。Pulsar 并没有让 ZooKeeper 退出其架构,但它确实提供了替代方案:本地内存、 RocksDB和 etcd(注意,前两者只适用于独立的 Pulsar 或单节点 Pulsar 集群)。

与 Kafka 相比,Pulsar 最大的不同在于它将存储层和服务层分开。在 Pulsar 的架构中,Broker 处理消息路由和传递,而 Apache BookKeeper 处理长期存储。具体来说,生产者发送的每条消息都会被写入 BookKeeper 记事本中保存。这种分层存储方法意味着 Pulsar 的架构比 Kafka 的架构更复杂--有更多的组件需要管理(至少目前是这样;但如前所述,Kafka 也将引入分层存储方法)。另一方面,这种解耦意味着你可以独立扩展存储层和服务层。

Kafka 与 Pulsar:运行属性

Pulsar 和 Kafka 在存储和消息消耗模式、延迟、吞吐量、耐用性和可扩展性方面相比如何?

存储和信息消耗

属性

Kafka

Pulsar

存储方法

分布式提交日志

分层存储

信息消费模式

拉(长时间投票)

推动

这两种解决方案在信息消耗和存储模式方面存在很大差异。

卡夫卡的 基于日志的存储模型为每个主题分区使用一个仅有附加文件的日志文件,信息按顺序写入并存储在磁盘上。读取是顺序的,从偏移量开始(注意,消费者负责管理他们的偏移量)。写入会追加到日志的末尾。对于消息消费,Kafka 的拉动模型涉及消费者从代理处轮询新消息。

相比之下,Pulsar 的分层存储模型将信息分成较小的段,并将其存储在多个 BookKeeper 分类账(账本)中。值得注意的是,信息段也可以 卸载到长期存储解决方案如亚马逊 S3 或谷歌云存储。信息通过基于推送的模式消耗。

就这些差异谈几点看法:

  • 虽然 Pulsar 的分层架构会增加网络利用率,并需要将信息写入磁盘两次,但它也能对数据进行分段、有效管理,并在某些情况下加快检索速度。
  • 与 Kafka 的简单架构相比,Pulsar 的分层架构可能会增加操作的复杂性(需要管理的组件更多)。
  • 在处理滞后的消费者时,Kafka 和 Pulsar 模型都可能导致缓存刷新问题。由于额外的网络跳转和 I/O 操作, Pulsar 的方法可能会加剧这一问题。
  • 与 Kafka 相比, Pulsar 的推送模式可以减少延迟和资源消耗。另一方面,在 Kafka 中,消费者可以拉取信息,从而管理自己的流量控制。

性能

属性

Kafka

Pulsar

吞吐量

Kafka 能够处理高吞吐量工作负载(每秒数百万条信息)

Pulsar 还支持高吞吐量,可与 Kafka 相媲美

延迟

低延迟(毫秒级)

低延迟(毫秒级)

毫无疑问,Kafka 和 Pulsar 都是高性能的分布式流媒体和消息传递平台。很难(甚至不可能)说哪一个在延迟和吞吐量方面更胜一筹。 一些基准测试表明 Pulsar 性能更好,而 其他基准则显示 Kafka 更胜一筹。

尽管如此,基于推送的消息传递系统和分层存储模型(如 Pulsar)确实有助于缩短延迟时间,因为它们能促进数据组织,提高存储资源的使用效率,并能加快数据检索速度。

相反,Kafka 依靠的是连续轮询过程,即客户端在设定的时间间隔内重复请求数据。在消息量较少的时期,这可能会导致较高的延迟,因为客户端可能会在轮询间隔之间空闲等待。

不过,Pulsar 相对于 Kafka 的理论优势在实践中是否成立取决于具体的工作负载和使用模式。最好还是进行自己的基准测试,以确定这方面的情况。

可扩展性和耐用性

属性

Kafka

Pulsar

可扩展性

高度可扩展性(每天可处理 PB 级数据和数万亿条信息)

高度可扩展,可与 Kafka 相媲美

数据复制

跨多个节点复制数据,实现容错。支持全局数据复制。

在多个存储单元间复制数据,实现容错。支持全局数据复制。

信息持久性

Kafka 可配置为无限期存储数据

Pulsar 可配置为无限期存储信息

Kafka 和 Pulsar 提供耐久性功能,以确保高可用性和系统弹性。这两种解决方案都允许您无限期地存储消息,这对于发生故障或灾难时的恢复和连续性至关重要。此外,Kafka 和 Pulsar 还支持地理复制(在不同数据中心甚至不同地区之间)。Kafka 支持主题级别的复制;而 Pulsar 则提供主题和命名空间级别的复制。值得注意的是,与 Kafka 相比,Pulsar 在地理复制数据时需要额外的 "全局 "ZooKeeper 集群,这增加了复杂性。

Kafka 和 Pulsar 都是高度可扩展的平台。与 Kafka 相比,Pulsar 的分段、分层架构可能会在一定程度上增加灵活性并提高可扩展性(因为 Pulsar 的数据层和服务层是独立扩展的)。

迄今为止,Kafka 在可扩展性方面的最大瓶颈是 Apache ZooKeeper 的使用。ZooKeeper 存储 Kafka 的元数据,包括主题、分区、副本及其配置的信息。ZooKeeper 限制了 znode(ZooKeeper 中的数据节点)中可存储数据的最大大小。这种数据大小限制间接限制了 Kafka 可管理的分区数量(每个集群大约可管理 500K 个分区)。

不过,如前所述,Kafka 正在移除对 ZooKeeper 的依赖,取而代之的是 KRaft。换句话说,ZooKeeper 对每个集群施加的 500K 分区限制将不复存在。KRaft 还带来了其他好处--例如,它使控制器的故障切换几乎瞬时完成,并简化了 Kafka 的架构、部署和配置。

无论是否使用 KRaft,Kafka 都能毫无困难地扩展到绝大多数用例。Pulsar 也非常适合处理大规模场景。事实上,除非您处理的是超大规模场景(PB 级数据和每天数万亿条消息),否则您不太可能在使用这两个工具中的任何一个时遇到严重的可扩展性问题。即便如此,通过重新架构或优化 Kafka 或 Pulsar 部署,你也不可能无法解决这些问题。

Kafka 与 Pulsar:生态系统

到目前为止,我们已经看到 Kafka 和 Pulsar 是高性能、高扩展性和持久性的解决方案。然而,在选择数据流平台时,并不能只考虑延迟和规模。有鉴于此,让我们来比较一下 Kafka 和 Pulsar 的开发人员体验和生态系统。

GitHub 统计、在线资源、社区和文档、学习和培训

属性

Kafka

Pulsar

GitHub 统计数据(准确时间截至 2023 年 7 月 11 日)

25.3k 星级

12.8k 货叉

1.1k 观看

12.9k 星级

3.3 千货叉

409 观看

在线资源

论坛、众多博客、教程、视频、电子书、在线课程、聚会等。

论坛、博客、教程、视频、电子书、聚会等(数量不如 Kafka 的多)。

社区和文献

大型、活跃的社区。

大量文件。

社区规模不断扩大,但明显小于卡夫卡社区。

文档不错,但不如卡夫卡的全面。

学习和培训

许多在线课程、研讨会和会议。

Kafka 的入门相对容易,但掌握起来却充满挑战。

学习曲线更简单,因为只有两个系统需要学习:Kafka 和 ZooKeeper(后者即将退役)。

与卡夫卡相比,课程和研讨会更少。

Pulsar 相对容易上手,但要精通却很有挑战性。

学习曲线较长,因为有三个系统需要学习:Pulsar、Apache BookKeeper 和 ZooKeeper(以及后者的潜在替代方案,如 RocksDB 或 etcd)。

您需要了解一些背景知识,才能充分理解 Kafka 和 Pulsar 社区和在线资源之间的差异。

Kafka 于 2012 年成为正式的 Apache 软件基金会项目,而 Pulsar 则在四年后的 2016 年达到了同样的里程碑。此外,Kafka 的开源特性促进了其 迅速普及实时事件流解决方案的需求激增。

这在很大程度上说明了 Kafka 在以下方面比 Pulsar 更有优势 的优势.话虽如此、 Pulsar 的社区正在经历增长,这始终是一个项目未来发展的良好指标。

总之,不可否认的是,在文档、在线资源和社区方面,Kafka 比 Pulsar 更胜一筹。Kafka 也更受欢迎(从 GitHub 的统计数据来看),学习起来也更容易(尽管 Kafka 和 Pulsar 都很难掌握)。

CLI 和客户端

属性

Kafka

Pulsar

CLI

Kafka 包含一套内置 CLI 工具,允许您执行各种操作,例如

  • 创建、列出和删除主题。
  • 发送和接收信息
  • 名单经纪人和消费者团体。
  • 检索有关 Kafka 群集的信息(如版本、代理 ID)。
  • 创建和删除访问控制列表
  • 注册和检查模式。

与 Kafka 类似,Pulsar 也提供 CLI 工具,可用于各种用途。例如

  • 创建、列出和删除租户、命名空间、主题、订阅、函数和模式。
  • 发送和接收信息
  • 管理连接器和软件包
  • 管理脉冲星星团(如创建和删除星团)。

客户

众多官方和第三方客户端,支持多种编程语言

Pulsar 提供多种官方和第三方客户端库,支持多种语言和平台

总的来说,在 CLI 工具方面,Kafka 和 Pulsar 似乎不相上下。两者都提供 CLI,允许你管理 Kafka/Pulsar 部署并与之交互。当然,在使用这些 CLI 所能做的事情方面也存在一些差异(其中一些差异源于 Kafka 和 Pulsar 是不同的平台,具有一些不同的功能)。例如 卡夫卡 CLI为管理消费者组提供了更好、更详细的命令,而 Pulsar 的 CLI工具允许你管理包(Kafka 的 CLI 无法做到这一点)。

Kafka 和 Pulsar 都通过其客户端库支持多种编程语言。Kafka 在支持的语言数量上略胜一筹,这主要是由于其存在时间较长,应用范围较广,因此开发了更多的第三方客户端库。详情请参见下一节。

语言支持

编程语言

Kafka

Pulsar

C/C++

官方 (Confluent)

官方

C#

官方 (Confluent)

官方

.NET

官方 (Confluent)

官方

PowerShell

第三方

不支持

Python

官方 (Confluent)

官方

Go

官方 (Confluent)

官方

Erlang

第三方

第三方

Clojure

第三方

第三方

Ruby

第三方

第三方

Node.js

官方 (Confluent)

官方

Perl

第三方

不支持

PHP

第三方

第三方

Rust

第三方

第三方

Java

官方(阿帕奇卡夫卡)

官方

Scala

官方(阿帕奇卡夫卡)

第三方

Swift

第三方

不支持

Husky

第三方

第三方

Kafka 提供 Java 和 Scala 官方客户端库。Confluent(由 Apache Kafka 的创建者创立)提供了其他一些官方支持的客户端,针对 C/C++、C#/.NET、Python、Go 和 Node.js。同样,Pulsar 也有针对 Java、C/C++、C#/.NET、Python、Go 和 Node.js 的官方客户端库。从本质上讲,Pulsar 和 Kafka 通过其官方客户端库针对的是相同的编程语言(唯一明显的区别是 Kafka 官方客户端支持 Scala,而 Pulsar 并不支持 Scala)。

除了这些官方客户端,还有许多第三方 Pulsar 和 Kafka 客户端库,其中大部分是开源项目。Kafka 稍占优势,因为你可以找到 PowerShell、Perl 和 Swift 的 Kafka 客户端(这些语言没有 Pulsar 客户端库)。

请注意,Kafka 和 Pulsar 还提供一些与语言无关的客户端。例如,Pulsar 提供 REST 和 WebSocket 客户端,而 Kafka 则提供多个 HTTP 代理客户端(包括官方客户端和社区客户端)。了解更多有关 Kafka 客户端和 Pulsar 客户端.

生态系统

属性

Kafka

Pulsar

集成

数以百计的汇和源连接器以及与其他系统的集成

数十个汇和源连接器以及与其他系统的集成

流处理

内置强大的流处理功能(通过 Kafka Streams)。

与其他流处理解决方案集成。

内置基本流处理功能(Pulsar 功能)。

与其他流处理解决方案集成。

与 Pulsar 相比,Kafka 拥有更大的生态系统。通过连接器 Kafka Connect 框架让你可以轻松地将数据从其他系统摄取到 Kafka,并将数据从 Kafka 主题流式传输到不同的目的地。目前已有数百种针对不同类型系统的连接器,如数据库(如 MongoDB)、存储系统(如 Azure Blob Storage)、消息系统(RabbitMQ、JMS)等。

与此同时,虽然 Pulsar 的生态系统不如 Kafka 成熟,但它仍然提供了大量、多样的连接器,并与 Aerospike、Datadog 和 RabbitMQ 等其他系统集成。

在内置流处理功能方面,Kafka 比 Pulsar 更胜一筹。其 卡夫卡流库允许您构建 实时流处理应用程序Kafka Streams 库允许你构建实时流处理应用程序,并具有连接、聚合、窗口和精确一次处理等功能。相比之下,Pulsar 只通过 脉冲星函数接口为流处理提供基本功能,适用于简单的回调。除了内置的流处理功能,Kafka 和 Pulsar 还能与 Apache Flink、Apache Storm 和 Apache Beam 等流处理解决方案集成。

Kafka 与 Pulsar:许可证和部署选项

本节比较了 Kafka 和 Pulsar 的许可条款、商业支持选项、部署模式和托管服务产品。

许可和商业支持

属性

Kafka

Pulsar

许可

开放源代码(Apache许可证 2.0)

开放源代码(Apache许可证 2.0)

商业支持

由许多顶级供应商提供

与 Kafka 相比,提供商业支持的供应商更少

如您所见,Kafka 和 Pulsar 在许可方面没有区别。这两个平台都是开源的--它们都使用 Apache License 2.0.

尽管如此,如果不想自己管理 Kafka/Pulsar,也有第三方供应商提供商业支持。不过,值得指出的是,与 Pulsar 相比,Kafka 的商业支持更为成熟和广泛。有关这方面的更多信息,请参见下一节。

部署模式和托管产品

部署

Kafka

Pulsar

内部部署

是

是

集装箱

Docker, 基于容器的平台

Docker, 基于容器的平台

云

AWS、GCP、Azure 和其他云平台

AWS、GCP、Azure 和其他云平台

Kubernetes

Confluent Platform、Strimzi、Koperator

Pulsar 舵图、StreamNative 平台

托管服务

例子包括 Quix、Confluent Cloud、Amazon MSK、Aiven、Instaclustr、Azure HDInsight

实例包括 DataStax(Astra Streaming、Luna Streaming)、StreamNative Cloud、Pandio

Kafka 和 Apache 可以通过多种方式灵活部署,如内部部署、云部署、使用 Docker 或 Kubernetes。此外,许多托管服务提供商都支持 Kafka 和 Pulsar,这可以简化这些系统的部署、扩展和管理。不过,需要注意的是,Kafka 供应商的数量更多(也更知名)。这并不令人意外,毕竟 Kafka 的历史更悠久,与 Pulsar 相比更早(也更广泛)得到采用。

Kafka与 Pulsar:安全性

在选择数据流平台时,安全性往往是首要考虑的问题。那么 Pulsar 和 Kafka 相比如何呢?

属性

Kafka

Pulsar

认证

SASL/SCRAM, SASL/PLAIN, OAuth

基于令牌、TLS、OAuth 2.0、Kerberos

授权

访问控制列表(ACL)

基于角色的访问控制(RBAC)

加密

对传输中的数据进行 SSL/TLS 加密。

可使用其他工具或框架对数据进行端到端加密。

对传输中的数据进行 SSL/TLS 加密。

端到端加密

审计

非内置,需要外部工具

内置审计日志

数据隔离

基于主题

多租户、命名空间隔离

Kafka 和 Pulsar 都提供可靠的安全功能,如加密和强大的身份验证和授权机制。

在某些方面,Pulsar 具有优势:例如,它原生支持端到端加密,并内置审计日志。这并不是说 Pulsar 本身就比 Kafka 更安全,也不是说 Kafka 缺乏关键的安全功能,但值得注意的是,Pulsar 提供了一些额外的安全机制,可能会派上用场。

结论

正如我们所看到的,Kafka 和 Pulsar 都是数据流平台,具有一些相似的特点。它们都是高吞吐量、低延迟、持久耐用和高度可扩展的解决方案,并通过官方和第三方客户端 SDK 实现了良好的编程语言覆盖。

不过,它们之间也有很多不同之处。例如,Pulsar 具有一些额外的安全功能(如内置审计日志)。它还采用分层架构,将存储层与服务层分开。这为您提供了灵活性,因为这些层可以根据需求独立扩展。

另一方面,Kafka 的架构没那么复杂,组件较少。此外,与 Pulsar 相比,Kafka 拥有更强大、更成熟的连接器和集成生态系统,并提供更丰富的流处理功能。Kafka 还拥有一个规模更大的社区,而且它在超大规模的实战中得到了 Netflix 和 LinkedIn 等巨头更广泛的检验。

Kafka 或 Pulsar 是否是流使用案例的最佳选择(或者是否更适合亚马逊 Kinesis 等其他平台),最终取决于您的决定。 查看 Kafka 与 Kinesis 的比较。).

深入了解 Kafka 和 Pulsar 的区别 在本篇博文中,我们将深入探讨 Apache Kafka 和 Apache Pulsar 之间的主要区别。通过研究这两个消息传递系统的核心区别和独特功能,我们希望让您初步了解它们的核心机制和实现。我们希望这种分析不仅能帮助您在两者之间做出选择时做出明智的决定,而且还能作为宝贵的资源来支持进一步探索和理解它们的功能。 阅读详情

相关推荐

Kafka与Pulsar差异深入探讨

在这篇文章中,我们将深入研究Apache Kafka和Apache Pulsar之间的关键区别。通过研究这两个消息系统的核心区别和独特功能,我们希望为您提供对其核心机制和实现的初步了解。我们希望这一分析不仅能帮助您在选择两者时做出明智的决定,而且能成为支持进一步探索和理解其功能的宝贵资源。

ecloud_developer的博客 1704

Pulsar 和 Kafka 架构对比

更多内容关注微信公众号:fullstack888相比于 Kafka 等数据处理中间件,分布式消息平台 Apache Pulsar 如何存储数据?本文基于架构,对比了 Apache Kafka 等传统数据处理中间件和分布式消息平台 Apache Pulsar 的优劣势,供大家参考。存储可扩展Apache Pulsar 的多层架构将消息服务层与存储层完全解耦,从而使各层可以独立扩展。传统的分布式数据处...

qianshanding0708的博客 2089

【Canal】 Canal 与 Apache Pulsar 集成相比 Kafka 有什么不同?如何配置?

将编译好的 JAR 包放入 Canal Server 的plugin目录,并在Canal 配置项说明默认值Pulsar 服务 URL无认证插件类无认证参数无是否启用批处理true批处理最大消息数1000。

九师兄 21

kafka测试工具_Apache Pulsar和Kafka之间的性能比较

最初于2019年8月29日发布在Kafkaesque博客上。Apache Pulsar,Apache Kafka和Apache BookKeeper是Apache Software Foundation的商标。Apache Kafka以其高性能而闻名。 它能够处理高速率的消息,同时保持较低的延迟。 Apache Pulsar是快速增长的Kafka的替代品。 有报告表明,Pulsar具有比Kafka...

weixin_39748445的博客 1468

Kafka和Pulsar深入解析

组件依赖:Kafka Raft(KRaft)从Kafka 2.8开始处于早期访问模式,允许Kafka在没有ZooKeeper的情况下工作。然而,它的架构相对陈旧,在云原生时代,面对前景光明的新。组件依赖:对Pulsar的一个常见批评是它对ZooKeeper的强烈依赖,以及需要维护额外的存储系统,这需要运维人员掌握更多的技能。分层存储:内置分层存储,支持将冷数据移动到更便宜的存储选项,如AWS S3或谷歌云存储。生态系统:一个蓬勃发展的生态系统,拥有各种工具,如connector。云原生部署:相对复杂。

默硕的博客 557

EBSD数据转ABAQUS的inp文件实操指南

晶体塑性有限元模拟中,如何将材料微观组织表征数据转化为可计算的有限元模型,是连接实验与仿真的关键环节。EBSD技术能够获取材料表面的晶体取向、晶粒形貌和晶界分布信息,但这类数据需要经过格式解析、欧拉角转换、网格生成等步骤,才能被ABAQUS等有限元软件读取。通过将扫描点坐标映射为节点、按像素邻域生成单元,并将Bunge约定欧拉角变换为局部坐标系方向余弦,用户可以准确构建包含真实微观结构的inp文件模型。这一流程广泛应用于金属材料形变、织构演化及应力集中分析等研究场景,有效提升仿真结果与实验的一致性。围绕数据

weixin_42509513的博客 310

从架构层面理解 Apache Pulsar 和 Apache Kafka 不同

本文作者是 David Kjerrumgaard,目前任职于 Splunk,Apache Pulsar 和 Apache NiFi 项目贡献者。译者为 Sijia@StreamNative...

过往记忆大数据 363

人工智能顶会投稿指南:CCF-A类会议ACL、ICML、NeurIPS、ICLR的投稿周期与影响力解析

本文详细解析了CCF-A类会议ACL、ICML、NeurIPS、ICLR的投稿周期与影响力,涵盖各会议的投稿时间线、评审特点及录用率。ACL注重自然语言处理,ICML强调机器学习理论,NeurIPS覆盖神经信息处理,ICLR聚焦表征学习。文章还提供了实战投稿策略,帮助研究者提升投稿成功率。

weixin_29211309的博客 3347

不同的消息队列有什么区别?Kafka、RabbitMQ、RocketMQ、Pulsar、ActiveMQ 选型对比

对比项KafkaRabbitMQRocketMQPulsarActiveMQ核心定位事件流平台消息代理分布式业务消息 / 流云原生消息与流传统企业消息中间件典型模型吞吐倾向很高中高高很高中等路由灵活度相对简单很强较强较强较强顺序处理Partition 内有序Queue 场景下可维持顺序,但需考虑并发等因素支持顺序消息支持 Key_Shared 等模式处理有序需求支持传统队列顺序语义延迟消息通常需要业务设计或相关机制实现。

2401_86617027的博客 1088

【FPGA】Verilog代码实现温湿度传感器DHT11

#今天也是咸鱼的一天~ 因为参加Robei 杯 是要做一个机器人,先不说这个机器人具体怎么机器法,但是和外界互通的传感器肯定少不了,通过获取外界环境数据,进行处理,然后做出各种各样的功能。 先来讲个简单的模块,温湿度传感器DHT11。 DHT11介绍 DHT11是一款价格便宜,易于使用的温度湿度测量二合一传感器。它具有超小体积、极低功耗的特点。它使用单根总线与单片机进行双向的串行数据传输,信号传...

Ninquelote的博客 9162

air780e stm32标准库发送英文短信,如何实现?(附相关源码,仅供参考)

🏆 本文收录于《全栈Bug调优(实战版)》专栏,致力于分享我在项目实战过程中遇到的各类Bug及其原因,并提供切实有效的解决方案。无论你是初学者还是经验丰富的开发者,本文将为你指引出一条更高效的Bug修复之路,助你早日登顶,迈向财富自由的梦想🚀!同时,欢迎大家关注、收藏、订阅本专栏,更多精彩内容正在持续更新中。让我们一起进步,Up!Up!Up!    备注: 部分问题/难题源自互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验总结所得,数条可行方案供所需之人参考。

**My Coding Family** 1239

Pulsar vs Kafka,CTO 如何抉择?

本文作者为 jesse-anderson。内容由 StreamNative 翻译并整理。本文以三个实际使用场景为例,从 CTO 的视角出发,在技术等方面对比 Kafka 和 Pulsar...

Apache Pulsar 3702

36、R语言中的回归模型与机器学习算法

本文介绍了R语言中多种回归模型和机器学习算法,包括Cox回归模型、数据平滑方法(如样条函数、多项式曲面拟合和核平滑)以及回归树模型等。重点讲解了这些方法的实现函数、参数说明以及实际应用示例,如使用`coxph`进行生存分析、使用`spline`和`smooth.spline`进行数据平滑处理、使用`loess`和`locpoly`进行非参数回归分析,以及使用`rpart`构建和可视化回归树。此外,还涉及了模型评估与优化策略,如数据拆分、交叉验证和树的修剪。通过这些方法,可以更好地处理复杂数据集并提升模型性能

yhn456789的博客 122

kafka同一个group 消费两个topic吗_Pulsar与Kafka消费模型对比

kafkakafka 属于 Stream 的消费模型,为了支持多 partition 的消费关系,引入了 consumer group 的概念,同时支持在消费端动态的 reblance 操作,当多个 Consumer 订阅了同一个 Topic 时,会根据分区策略进行消费者订阅分区的重分配。只要 consumer-group 与 topic 之间的关系发生变更,就会动态触发 reblanc...

weixin_36372146的博客 882

Openclaw错误分析与解决方案之:Agent couldn’t generate a response.

Openclaw错误分析与解决方案之:Agent couldn't generate a response. Note: some tool actions may have already been executed — please verify before retrying.

多媒体编程、网络编程、系统编程、网络安全编程、驱动编程 1316

在Android中实现SIM卡的读写操作

在上述代码中,我们创建了一个PhoneStateListener的实例,并重写了onSimStateChanged方法来处理SIM卡状态改变的事件。然后,我们通过调用telephonyManager的listen方法注册了这个监听器,并指定了要监听的事件类型为SIM卡状态的改变。在上述代码中,我们调用telephonyManager的sendUssdRequest方法来发送USSD命令,并通过TelephonyManager.UssdResponseCallback来处理USSD响应和发送失败的情况。

2301_79326510的博客 925

10 分钟了解 Pulsar:针对 Kafka 用户的指南

本文翻译自 StreamNative 博客《Understanding Pulsar in 10 Minutes: A Guide for Kafka Users》,作者 Elliot West,StreamNative 软件工程师。本文由 StreamNative 组织翻译。译者简介王中兴,社区昵称 AlphaWang,就职于 eBay 消息中间件。本文将结合你现有的 Apache Kafka ...

Apache Pulsar 873

Open3D 计算FPFH特征【2025最新版】

FPFH特征描述子的python实现,本文最新更新时间为:2025年3月18日。

点云侠的博客 5275

​CTO问我Pulsar到底能不能取代Kafka

Pulsar源自Yahoo,于2016年开源并捐献给Apache基金会,并在2018年9月升级成为Apache顶级项目。Kafka最初由Linkedin开发,并于2010年贡献给了Apache基金会,之后成为Apache顶级项目。Kafka架构由broker和zookeeper组成,如下图:[1]注意:Kafka2.8版本可以不依赖Zookeeper独立运行了Pulsar的架构如下:Pulsar Broker会在本地缓存消息,并且支持TTL,从上面的2个架构我们看到,Kafka和Pulsar有3点不同:Ka

mxy_111的博客 234

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

关于Pulsar与Kafka的一些比较和思考

作者:Sijie Guo来源:https://streaml.io/blog/pulsar-streaming-queuing大数据技术与架构点击右侧关注,大数据开发领域...

微信搜:import_bigdata,大数据领域硬核原创作者 528

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

面试官:Pulsar到底能不能取代Kafka

Pulsar是一款分布式发布/订阅消息平台,近两年非常火,被称为下一代的消息流平台,大有取代Kafka的势头。今天我们就来比较一下Pulsar跟Kafka。 历史背景 Pulsar源自Yahoo,于2016年开源并捐献给Apache基金会,并在2018年9月升级成为Apache顶级项目。 Kafka最初由Linkedin开发,并于2010年贡献给了Apache基金会,之后成为Apache顶级项目。 架构 Kafka Kafka架构由broker和zookeeper组成,如下图: [1]

m0_67645544的博客 504

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Pulsar 替代 Kafka 的原因

架构图。

qq798280904的博客 928

Apache Pulsar 与 Kafka 性能比较:延迟性(测试结果)

????️阅读本文需 7 分钟本系列文章将重点讨论 Pulsar 与 Kafka 的延迟性,之前的两篇文章已经介绍了测试方法(下图绿色部分)与测试细节(下图蓝色内容),可以点击下列标题直...

Apache Pulsar 676

最新基准测试:Kafka、Pulsar-和-RabbitMQ-哪个最快?,高级软件测试开发技术

些内容对你有帮助,可以添加V获取:vip1024b (备注软件测试)**[外链图片转存中…(img-ShDUYAFR-1713037874235)]

2401_84267528的博客 825

2024年最新基准测试:Kafka、Pulsar 和 RabbitMQ 哪个最快?(2),2024年最新软件测试-Camera内存问题剖析

此外,对于所比较的三个系统,为了获得更好的延迟性能,我们使用 tune -adm 的延迟性能配置文件对操作系统进行了调优,它会禁用磁盘和网络调度器的任何动态调优机制,并使用性能调控器进行 CPU 频率调优。从持久性的角度来看,在我们的基准测试中,消费者与生产者保持同步,因此,我们没有注意到任何写入磁盘的操作。我们预计,当网络受到限制时(不像我们的测试提供了过剩的网络带宽),Pulsar 的两层架构将以两倍的速度耗尽网络资源,进而降低性能。我们发现,Kafka 在我们所比较的系统中吞吐量最高。

2401_84563561的博客 1256
上一篇: 从Kafka面试心慌到offer收割机,我仅靠这份手册通过学习成功逆袭
下一篇: 10年架构师泣血整理!分布式架构终极圣经
程序员职业指南
博客等级 码龄4年 2136粉丝 960原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值