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

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

Pulsar是一款分布式发布/订阅消息平台,近两年非常火,被称为下一代的消息流平台,大有取代Kafka的势头。今天我们就来比较一下Pulsar跟Kafka。

历史背景

Pulsar源自Yahoo,于2016年开源并捐献给Apache基金会,并在2018年9月升级成为Apache顶级项目。

Kafka最初由Linkedin开发,并于2010年贡献给了Apache基金会,之后成为Apache顶级项目。

架构

Kafka

Kafka架构由broker和zookeeper组成,如下图:

[1]

注意:Kafka2.8版本可以不依赖Zookeeper独立运行了

Pulsar

Pulsar的架构如下:

Pulsar Broker会在本地缓存消息,并且支持TTL,

从上面的2个架构我们看到,Kafka和Pulsar有3点不同:

  • Pulsar采用分层架构,将计算和存储相分离,存储使用BookKeeper集群,计算使用Broker集群,Broker需要内置BookKeeper客户端。
  • Pulsar的部署和架构更加复杂,但是也更具有伸缩性。
  • Pulsar在最新版本中依然不能脱离Zookeeper独立运行。

消息存储模型

Kafka

Kafka采用分区(Partition)的方式来保存topic,模型图如下:

每个topic都会在不同的broker保存多个分区副本,其中只有一个副本的分区是leader分区,供消费者使用。如果某个broker宕机了,这个broker上的leader分区失效,需要在其他broker上重新进行选举。

Pulsar

跟Kafka不同的是,Pulsar的消息存储模型采用了分层的方式,如下图:

[2]

第一层是Topic,用来存储Producer追加的messages,Topic下面是ledger层,保存了分片(Segment),分片里面保存更小粒度的ertries,entries存储一条条的Message。

Bookkeeper中,数据的最小操作单位是Segment。

Ledger中的最后一个分片是最新写入的分片,如上图Segment-2。Segment-2之前的所有分片已完成封装,这些分片的数据是不会再发生变化的。这样增加或删除一个BookKeeper节点,或者迁移长期存储节点,都不会发生一致性问题。

消息消费模型

Kafka

Kafka的消费模型是采用消费者组的模式,每一个分区只能给消费者组中的一个消费者消费。如下图:

Pulsar

Pulsar的消费模型如下图:

[3] Pulsar的topic是一种partitioned topic,可以被保存到多个broker,提高了topic的吞吐量。

Consumer通过Subscription获取消息,同一Topic的Subscription可以获取到Topic数据的完整拷贝,这样Subscription为每一个Consumer分配一个Cursor,Consumer之间互不影响。如下图:

Pulsar的消费模型有4种:

  • 独占模式(Exclusive):同一个topic只能有一个消费者订阅,如果多个消费者订阅,就会出错。
  • 灾备模式(Failover):同一个topic可以有多个消费者订阅,但是只能有一个消费者消费,其他订阅的消费者作为故障转移的消费者,只有当前消费者出了故障才可以进行消费当前的topic。如下图:

  • 共享订阅(Shared):同一个topic可以由多个消费者订阅和消费。消息通过round robin轮询机制分发给不同的消费者,并且每个消息仅会被分发给一个消费者。当消费者断开,发送给它的没有被消费的消息还会被重新分发给其它存活的消费者。如下图:

  • Key_Shared:消息和消费者都会绑定一个key,消息只会发送给绑定同一个key的消费者。如果有新消费者建立连接或者有消费者断开连接,就需要更新一些消息的key。如下图:

多租户

Pulsar

Pulsar是一个多租户系统,租户可以跨集群分布,每个租户都可以有单独的认证和授权机制。租户也是存储配额、消息 TTL 和隔离策略的管理单元。

Pulsar中topic的URL如下,可以看到租户是最基本的管理单位:

persistent://tenant/namespace/topic

上面的URL可以看到,Pulsar通过tenant和namespace来支持多租户。

namespace是一个术语,指租户的管理单元。同一个namespace上设置的配置策略适用于在namespace中创建的所有 topic。

Pulsar为实例中的每个租户分配:

  • 授权机制
  • 适用于租户配置的集群配置

Kafka

Kafka为了控制客户端对broker资源的限制,从0.9版本引入了配额(quotas)管理,强制客户端请求使用配额。目前Kafka支持两种类型的配额:

  • 网络带宽配额,用来定义byte-rate阈值(从0.9版本开始)
  • 请求速率配额,将CPU利用率阈值定义为网络和I/O线程的百分比(从0.11开始)

生产者和消费者有可能以很高的速率生产和消费大量的请求,从而垄断broker资源,导致网络饱和,最终影响到其他客户端和broker本身。使用配额可以防止这些问题,让集群体验更好。

运维

集群部署

Kafka去除Zookeeper以后,部署是非常简单的。而Pulsar目前还没有去除Zookeeper的详细计划,而且需要使用到BookKeeper集群,部署复杂不少。

扩容

Pulsar支持自动负载均衡,这对于增加broker节点和增加存储节点都非常方便。

云原生支持

Pulsar 计算和存储节点分离,对云原生支持很好。

Kafka 多数组件也支持云原生。

替换broker

Pulsar的broker节点是无状态的,替换时不用考虑数据丢失。

社区

Pulsar社区发展非常迅速,StreamNative 还推出了StreamNative Hub来支持Pulsar社区建设。[4]

但Pulsar毕竟是一个新型的消息中间件,文档和社区都不太完善。在过去的一年多时间里,Pulsar在这方面做了很多的努力,包括举办全球峰会,创作视频和培训教程,邀请专业讲师进行培训。

使用Pulsar时,遇到的一些问题可能在网上找不到答案,需要查找源代码来解决。这对于中小公司来说,无疑增加了使用成本。

而Kafka作为非常成熟中间件,用户遇到的问题也非常多,新用户可以很方便地从网上找到答案。

总结

Pulsar作为新型的云原生分布式消息流平台,确实有很多优秀的设计理念。

在Yahoo内部支持应用服务平台中 140 万个topic,日处理消息超过 1000 亿条。腾讯的分布式交易引擎 TDXA也使用了Pulsar,应用于腾讯的计费平台。 [5]

kafka目前的使用场景最多的还是日志大数据处理,对金融场景的应用比较少。

但这并不能说明Pulsar可以取代Kafka,Kafka用户群体庞大,社区和资源完善,而且在2.8版本中去除了Zookeeper,部署非常容易。毕竟不是每家公司都需要Yahoo和腾讯这样的集群体量。

如果觉得本文对你有帮助,可以转发关注支持一下

深入了解 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

C#利用S7netplus实现西门子S7_200_SMART PLC高效点位监控与操作

本文详细介绍了如何使用C#结合S7netplus开源库高效监控与操作西门子S7-200 SMART PLC的点位。内容涵盖从开发环境搭建、建立通信连接,到核心的点位读写、批量数据处理及字节与位数组转换等关键技术,并提供了构建稳定监控程序的架构与避坑指南,帮助开发者快速实现上位机与PLC的稳定数据交互。

rum55的博客 315

Kafka 和 Pulsar到底有什么不同?

Kafka 是一个分布式事件流平台,旨在处理高速、大容量和容错数据流。它最初由 LinkedIn 开发,后来捐赠给了 Apache 软件基金会。Kafka 已迅速成为构建实时数据管道、事件驱动架构和微服务应用程序的热门选择。核心能力发布和订阅记录流。以容错和持久的方式存储记录流。与配套服务协同工作,在记录发生时处理记录流(Kafka Streams 和 ksqlDB)。主要特点为实时数据流提供高吞吐量、低延迟的消息传递。支持数据分区和复制的可扩展架构。

java_beautiful的博客 1296

国产PHY芯片YT8512H替代LAN8742A的实战指南(STM32F407平台)

本文详细介绍了在STM32F407平台上,使用国产PHY芯片YT8512H替代LAN8742A的完整实战过程。文章深入剖析了硬件设计中的关键信号连接差异(如CRS_DV与RXDV复用)、时钟布线要点,并提供了软件驱动修改、PHY配置及调试排错的系统指南,旨在帮助工程师高效完成国产化替代,规避常见陷阱。

defi6farmer的博客 858

GaN制备micro-led(一)

随着第三代半导体 GaN 材料的快速发展,GaN 基 LED 发展迅速并广泛商业化,这 为可见光通信的实现及应用提供了基础。然而,普通商用 LED 的调制带宽只有几十兆 赫兹,并不能很好的满足可见光通信系统高传播速率的需求。为增大调制带宽,针对发 射端 LED 光源部分的改进仍需提高。将光子晶体结构引入 LED 芯片量子阱内部,能够 影响光子寿命和光子传播,进而改变 LED 芯片的调制带宽和光提取效率。结合倒装微 尺寸(Micro)LED 结构,使其封装体积最小化,这使得可见光通信能够更加灵活地.

weixin_45852211的博客 896

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

Pulsar是一款分布式发布/订阅消息平台,近两年非常火,被称为下一代的消息流平台,大有取代Kafka的势头。今天我们就来比较一下Pulsar跟Kafka。历史背景Pulsar源自Yah...

HollisChuang's Blog 550

RAGFlow 离线部署:解决cl100k_base.tiktoken问题

摘要 本文详细解决了RAGFlow离线部署时tiktoken缓存文件下载失败的问题。通过分析tiktoken库的缓存机制,一次性不改代码解决.

baidu_25691461的博客 830

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

Pulsar作为新型的云原生分布式消息流平台,确实有很多优秀的设计理念。在Yahoo内部支持应用服务平台中 140 万个topic,日处理消息超过 1000 亿条。腾讯的分布式交易引擎 TDXA也使用了Pulsar,应用于腾讯的计费平台。[5]kafka目前的使用场景最多的还是日志大数据处理,对金融场景的应用比较少。但这并不能说明Pulsar可以取代Kafka,Kafka用户群体庞大,社区和资源完善,而且在2.8版本中去除了Zookeeper,部署非常容易。

Park33的博客 371

MSP430项目设计:2020年TI杯大学生电子设计竞赛 坡道行驶电动小车(C题)循迹小车(分享项目展示视频与源码)

文章目录题目要求一、硬件设计二、理论分析与计算三、电路与程序设计四、测试方案与测试结果五、项目展示 哔哩哔哩项目展示视频:https://www.bilibili.com/video/BV1oz4y1d7mH/ 百度网盘资料链接:https://pan.baidu.com/s/1PC-lkSORH_XCgIG-u3HCog 提取码:c7zz 取走记得点赞啊! 题目要求 1.任务 利用TI的MSP430/MSP432平台,设计制作一个四轮电动小车。要求小车能沿着指定路线在坡道上自动循迹骑线行驶。小车必须独立

mbs706的博客 4万+

智警杯1.4---excel可视化

知识点

lulu001128的博客 949
上一篇: 盘点一下我用kafka两年以来踩过的一些非比寻常的坑
下一篇: 程序员必修课:阿里性能优化全解终开源!设计+代码+JVM三飞
mxy_111
博客等级 码龄4年 9粉丝 51原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值