Pulsar 与 Kafka 全方位对比(下篇):案例、特性、社区

原创
2020/12/03 18:30
阅读数 748

本文为《Pulsar vs Kafka - Part 2 - Adoption, Use Cases, Differentiators, and Community》中文翻译版本。原文首发于:https://streamnative.io/en/blog/tech/2020-07-22-pulsar-vs-kafka-part-2


阅读本文大约需要 12 分钟。

这是 Pulsar 与 Kafka 对比系列文章的下篇。在上篇中,我们从技术角度对比 Pulsar 和 Kafka,讨论二者在性能、架构、功能等方面的差异。在这篇中,我们通过分析研究 Pulsar 的使用案例,从商业角度对比 Pulsar 与 Kafka。

简介

数据正在改变商业格局。接入实时数据、处理数据消息、提升数据处理能力有助于增强产品、提升用户体验。亚马逊、优步、Netflix 等行业领头企业已经通过处理实时数据颠覆整个行业,并赚取数十亿美元。越来越多的行业期望实时处理数据,而实时数据的处理需求也推动着消息系统的革新。

越来越多的企业期待在创新型应用程序中使用实时流技术,以改善现有系统。行业领头企业也在逐步加深对消息平台先进技术的理解,探索各个平台的优劣势,如 Pulsar、Kafka、RabbitMQ 等。

如今,企业对消息系统的需求日益复杂。RabbitMQ 适用于处理消息队列,Kafka 擅长管理数据管道,而 Pulsar 兼备两者的特性。许多企业都需要一个更完善的消息平台。

Pulsar 扩展灵活、操作简单,能够在单个平台内实现消息队列和数据管道两种功能。因此,越来越多的企业开始采用 Pulsar 来处理消息队列和数据管道业务。Pulsar 提供统一的消息平台、构建流优先的应用程序等(这些独特的功能都是企业急需的),为众多业界领先的科技公司提供支持。

由于 Pulsar 是一项较新的技术,很多用户不太熟悉 Pulsar 的功能。本文将会解答一些关于 Pulsar 的常见疑问,分享 Pulsar 在多个领域迅速增长的用例,介绍 Pulsar 快速扩展的社区。另外,本文还会讨论采用新技术带来的风险,以及为什么现有技术无法适应瞬息万变的环境。

首先,我们来了解一下关于 Pulsar 的常见问题。

1: Pulsar 技术的成熟度是多少?是否在实际应用程序中测试过 Pulsar?

为了更好地了解 Pulsar 的成熟度和使用情况,我们先来介绍一下 Pulsar 的起源和发展背景。

Yahoo! 于 2012 年开始开发 Pulsar[1]。Pulsar 在 2016 年开源,并于 2018 年成为 Apache 的顶级项目。StreamNative 团队为 Pulsar 提供企业级支持。虽然 Pulsar 是消息领域的新技术,但它独特的优势不容小觑。Yahoo! 的开发者曾使用过 Kafka 和其他传统的消息技术,因此对这些平台的劣势有直观认识。Pulsar 的设计理念包含诸多优势,如易于操作、统一的消息平台、分层存储等。这些特性非常适合新兴应用场景。

Kafka 由领英团队开发,2011 年开源,并于 2012 年成为 Apache 的顶级项目。作为市场上第一个主要的事件流平台,Kafka 具备很高的知名度并广泛用于各个行业。Confluent 等诸多公司为 Kafka 提供企业级支持。与 Pulsar 相比,Kafka 更成熟、更流行,拥有更大的社区和更完善的生态系统。

在过去的 18 个月里,Pulsar 的用户和社区迅猛增长。在全球范围内,越来越多的媒体公司、科技公司、金融机构都在使用 Pulsar。以下是一些企业级用例。这些用例足以证明 Pulsar 处理关键任务应用程序的能力。

腾讯基于 Pulsar 搭建计费平台

Midas 是孵化于支撑腾讯内部业务千亿级营收的互联网计费平台,运营规模庞大,每天处理交易金额高达上百亿,日数据量达到 10+ TB。对于年收入超过 500 亿美元的腾讯来说,计费系统是其基础架构的关键组件。腾讯在计费平台 Midas 中使用 Pulsar 充分证明了 Pulsar 处理关键任务应用程序的能力,也证明了 Pulsar 的技术经得住严格测试,可以在严苛要求的环境下表现优异。

Verizon Media 在生产环境中使用 Pulsar 长达 5 年

Verizon Media 在生产环境中使用 Pulsar 长达 5 年,这是一个备受关注的例子。Verizon Media 收购雅虎后,成为 Pulsar 的最初开发者。在今年 6 月举办的 Pulsar Summit[2] 上,Verizon Meida 的 Joe Francis 和 Ludwig Pummer 提到整个 Verizon Media 平台都在使用 Pulsar,并称赞 Pulsar 是经过“实践检验”的系统。在 Verizon Media,Pulsar 支撑了 280+ 万个 topic,每秒处理 300+ 万次读写请求。Pulsar 不仅满足 Verizon Media 对低延迟、高可用、易扩展的要求,而且能够同时支持全球六个数据中心运营的业务。

Splunk 将 Pulsar 用于其数据流处理器

Splunk 也分享了他们的应用场景。多年来,Splunk 的生产环境一直使用 Kafka。在今年 6 月的 Pulsar Summit 上,Splunk 总监 Karthik Ramasamy 分享了“为什么 Splunk 选择了 Pulsar[3]”,介绍 Splunk 选择 Pulsar 支持其下一代分析产品 Splunk DSP 的原因。Splunk DSP 每天需要处理数十亿事件,Pulsar 不仅能满足 Splunk DSP 的 18 项关键需求,还具有易于扩展、运营成本低、性能好、开源社区强大等特点。

以上案例说明 Pulsar 功能非常强大。许多行业领军企业都选择用 Pulsar 支持关键业务的基础结构。尽管 Kafka 更成熟,使用范围更广,但 Pulsar 迅速增长的用户数量证实了 Pulsar 在性能方面的优势以及处理关键任务的能力。

2: Pulsar 与其竞争技术之间的主要差别是什么?每种技术的特有优势是什么?

虽然一些大型技术公司和媒体公司(如 Uber 和 Netfilix)通过构建统一的批和流处理平台以及流优先应用程序,实现了实时数据的需求,但大多数公司仍然缺少开发和维护这些应用程序所需的开发人员及财务支持。Pulsar 提供了先进的消息处理能力来帮助这些公司克服开发类似平台的难题。

接下来,我们将重点介绍 Pulsar 区别于其竞争对手的三种独特功能。这三种功能,有些已经实现,有些正在开发中。

统一的消息模型

目前,最常见的两种消息类型为应用程序消息(传统的队列系统)和数据管道。应用程序消息支持异步通信(通常在 RabbitMQ、AMQP、JMS 等平台上开发),而数据管道则用于不同系统(如 Apache Kafka 或 AWS Kinesis)之间传输大量数据。由于这两类消息运行在不同的系统上,并且提供的功能也不尽相同,因此多数企业一般都需要同时运行两套系统。开发、管理不同的系统不仅成本高、操作复杂,还会增大集成系统和整合数据的难度。

Pulsar 的核心技术支持用户同时将其部署为传统队列系统和数据管道,因此 Pulsar 成为独一无二的统一消息功能的理想平台。对企业而言,统一的消息简化了抓取和分发数据的操作,从而可以通过使用实时数据推动业务创新。

最近,Pulsar 还支持 KoP(Kafka-on-Pulsar),AoP(AMQP-on-Pulsar)和 MoP(MQTT-on-Pulsar)插件。通过这些插件,企业可以更方便地利用统一消息的功能。(我们将在下文中详细讨论 KoP,AoP 和 MoP。)

批存储和事件流存储

越来越多的企业需要及时做出决策,并迅速对变化作出反应,因此企业非常重视重要的实时数据。另外,集成、理解大量历史数据对展示业务的整体概况也至关重要。

传统的大数据系统(如 Hadoop)支持分析大量历史数据,从而帮助企业做出决策。但是,这些系统需要几分钟、几小时,甚至是几天的时间来处理数据,因此很难集成实时数据,并且分析结果也存在一定的不足。

流处理器(如 Kafka Streams)擅长处理流数据,获得接近实时数据的分析结果,但不太适合处理大量历史数据集。许多企业需要同时运行批处理器和流数据处理器,以便及时感知业务变化。但维护多个系统费用昂贵,而且各个系统之间也难以兼容。

目前,有些系统可以同时进行批处理和流处理,如 Apache Flink。Kafka 和 Pulsar 都可以使用 Flink 进行流处理,但 Flink 的批处理能力与 Kafka 并非完全兼容。Kafka 只能以流交付数据,所以 Kafka 处理批处理工作负载的速度较慢。

相比之下,Pulsar 的分层存储模型提供批存储功能,可以支持 Flink 进行批流处理。目前,Pulsar 社区正在开发 Pulsar Flink connector[4],集成 Flink 和 Pulsar 的功能。使用 Pulsar Flink connector,企业可以更轻松地查询历史数据和实时数据,增强竞争优势。

“流优先”应用程序

企业软件开发越来越复杂,这推动了 Web 应用程序开发发生重大转变,由传统的与大型 SQL 数据库配对的单一应用程序转向由多个较小组件或“微服务”组成的应用程序。

许多企业都选择了微服务,因为微服务更具灵活性,更适用于不断变化的业务需求,同时还可以促进多个开发团队之间的合作。但是,微服务也引入了新的挑战,如需要支持多个组件之间的通信,并保持同步等。

通过名为“事件源”的新型微服务技术,应用程序生产并广播事件流到共享消息系统中。共享消息系统可以在集中的日志中获取事件历史记录。这一技术不仅改善了数据流,还保持了应用程序之间的同步性。

但是事件源既需要传统的消息功能,又需要长期存储事件历史的能力,因此实现起来非常困难。虽然 Kafka 可以存储事件流数天或数周,事件源通常需要更长的留存时间。因此,用户不得不构建多层 Kafka 集群来管理不断增长的事件数据,还要构建额外的系统来共同管理和追踪数据。

相比之下,Pulsar 统一的消息模型自然成为了最优选择,Pulsar 不仅可以轻松地分发事件到其他组件,还可以有效地、无限期地存储事件流。对于需要动态、流优先处理能力的公司来说,Pulsar 的这一独特设计尤为重要。

虽然其他系统也可以实现统一的消息、批流存储、“流优先”方法等,但实现这些功能并不容易,需要投入大量的时间、精力和资金。而 Pulsar 的设计不仅包含上述特性,还操作简单,帮助用户轻松适应不断变化的技术环境。

3: 是否有社区和企业支撑 Pulsar 开发和技术支持?

对比 Pulsar 与 Kafka 社区现状,我们看到,Kafka 社区更大,Slack 用户更多,StackOverflow 上的问题也更多。目前,Pulsar 社区相对较小,但社区成员非常活跃,社区发展迅猛。以下是 Pulsar 的近期活动。

Pulsar 的首次全球峰会

今年 6 月,Pulsar 首次举办全球峰会[5],即 2020 年 Pulsar Summit Virtual Conference[6]。此次会议中,Pulsar 社区的顶级贡献者、社区领导、开发人员分享了 30 多场演讲,深入介绍了 Pulsar 在不同行业的应用场景和最佳实践等。Verizon Media[7]Splunk[8]Iterable[9]OVHcloud[10] 等公司就 Pulsar 发表了深刻、独到的见解。

六百多人报名参加了这次峰会。参会者来自各行各业,覆盖顶级互联网公司、科技和金融机构,如谷歌、微软、AMEX、Salesforce、迪士尼、Paypal 等。此次峰会让人们看到 Pulsar 全球社区的高度参与,Pulsar 的关注度日益增长。

峰会结束后,Pulsar 的全球社区立刻联系我们要求举办 Pulsar 亚洲峰会和欧洲峰会。为了满足社区日益增长的需求,我们计划在今年 11 月底举办 Pulsar 亚洲峰会,欧洲峰会仍在筹划中(备注:Pulsar 亚洲峰会已在 11 月 28-29 日举办)。

社区支持 - 培训和活动

除了举办大型、广泛参与的峰会外,Pulsar 社区还专注于交互式培训和线上活动。今年年初, StreamNative 主导社区推出了每周一次的线上直播 TGIP(全称为 “Thank Goodness It’s Pulsar”)。这种交互式教程不只包含技术更新,还强调实践操作。TGIP 视频发布在 StreamNative 官网、YouTube、B 站等多个平台,以扩充 Pulsar 的现有资源。

2020 年,Pulsar 社区还推出了每月一次的线上研讨会[11],分享最佳实践、最新用例、技术更新等。最火的一期线上研讨会由 OVHCloud、Overstock、Nutanix 等战略商和开源团队主办。7 月 28 日,StreamNative 作为主办方,与来自 Verizon Media 和 Splunk 的小伙伴们进行了线上讨论,主题为在生产环境中使用 Pulsar。最近一期研讨会的主题为使用 Jet 处理低延迟流[12]

随着专业培训(由 StreamNative 等团队提供支持)的深入,Pulsar 的生态一直在不断发展。Pulsar 和 Kafka 的技术专家 Jesse Anderson 最近主持了一个关于开发 Pulsar 应用程序[13]的专业培训课程。该课程不仅扩大了 Pulsar 培训讲师的队伍,还促进了用户消息和流平台的开发。

此外,白皮书[14]也有助于扩大 Pulsar 的知识库。

社区合作伙伴也为关键项目的进展作出了贡献。下面,我们来了解一下最近推出的几款产品。

OVHCloud 帮助企业从 Kafka 迁移到 Pulsar

2020 年 3 月,OVHCloud 和 StreamNative 联合推出 KoP(Kafka-on-Pulsar)。使用 KoP,Kafka 用户无需修改代码就可以将现有的 Kafka 应用程序和服务迁移到 Pulsar。虽然 KoP 发布时间不长,但已有多个企业将其应用于生产环境中。同时,KoP 的可用性也有助于扩大 Pulsar 的使用范围。

中国移动帮助企业从 RabbitMQ 迁移到 Pulsar

2020 年 6 月,中国移动和 StreamNative 宣布推出另一重大插件——AoP(AMQP-on-Pulsar)。与 KoP 类似,AoP 支持使用 RabbitMQ(或其他 AMQP 消息 broker)的企业在不修改代码的情况下,将现有的应用程序和服务迁移到 Pulsar。AoP 成为扩大 Pulsar 使用范围的又一关键产品。

StreamNative 开源 MoP

2020 年 9 月,StreamNative 开源了 MoP(MQTT-on-Pulsar)。与 KoP、AoP 相似,MoP 是一种可插拔的协议处理插件。将 MoP 协议处理插件添加到现有 Pulsar 集群后,用户不用修改代码就可以将现有的 MQTT 应用程序和服务迁移到 Pulsar。通过 MoP,Apache Pulsar 可以支持原生 MQTT 协议,MQTT 应用程序就可以利用 Pulsar 的特性,例如 Apache Pulsar 计算和存储分离的架构以及 Apache BookKeeper 保存事件流和 Pulsar 分层存储等特性。

由此可见,Pulsar 社区一直致力于 Pulsar 的知识传播和生态发展,同时也展示了 Pulsar 的团队支持和成长空间,未来可期。

结语

在当今不断变化的商业环境中,接入数据可以解锁新商机、定义新类别,并使企业在竞争中遥遥领先。所以,许多企业都在通过利用数据和数据的分析结果来发展自身优势。与此同时,他们也在寻找新技术来实现这些目标。

本文回答了企业在评估新技术时通常会关注的一些商业问题,包括新技术的成熟度、启用按需业务的能力、开源社区的规模和成员参与度(仅适用于开源技术)等。

腾讯、Verizon Media、Splunk 的案例强有力地证明了 Pulsar 具备在生产环境中交付关键任务应用程序的能力。除此之外,Pulsar 支持统一消息和流优先的应用程序,因而支持企业在不需要大量资源的情况下推出具有竞争力的革新性新产品,这也是 Pulsar 的显著优势。目前,Pulsar 与 Flink 的集成正在开发中。这一产品将会展示 Pulsar 在同一平台进行批流处理的能力。

虽然 Pulsar 社区和其他一些关键领域(如文档)的规模仍然不大,但在过去的一年半时间里,均有显著增长。Pulsar 社区活跃度高、成长速度快,与 Pulsar 生态一起致力于 Pulsar 知识库和培训材料的持续扩展,同时也加速了 Pulsar 主要功能的开发。

企业在评估一项技术时,不仅需要考虑它当前的优劣势,还需要考虑该技术未来的发展方向和发展空间,如何应对新的业务需求等。Pulsar 具有强大的消息功能和其他独特优势,因此,对于希望开发实时数据流功能的企业而言,Pulsar 是个最佳选择。

想要更深入的了解 Pulsar 和 Kafka 在性能、架构、特性等方面的对比,参阅本系列上篇

特别致谢

感谢帮助撰写本文的 Pulsar 社区成员:Jerry Peng、Jesse Anderson、Joe Francis、Matteo Merli、Sanjeev Kulkarni、Addison Higham 等。

链接 & 资源

更多关于 Pulsar 文档和培训的信息,请访问 StreamNative 的 Resources 页面[15]

欢迎查阅近期发布的与涂鸦、OVHCloud、腾讯、Yahoo!Japan 相关的白皮书[16]

了解更多

欢迎订阅 Pulsar Newsletter[17],了解活动动态和技术更新。如想与其他 Pulsar 用户进行沟通,欢迎扫码加入 Pulsar 技术交流群(见底图)。

引用链接

[1] Yahoo! 于 2012 年开始开发 Pulsar: https://yahooeng.tumblr.com/post/150078336821/open-sourcing-pulsar-pub-sub-messaging-at-scale#notes?ref_url=https://yahooeng.tumblr.com/post/150078336821/open-sourcing-pulsar-pub-sub-messaging-at-scale/embed#_=_
[2] Pulsar Summit: https://www.youtube.com/watch?v=FXQvsHz_S1A
[3] 为什么 Splunk 选择了 Pulsar: https://www.youtube.com/watch?v=_q8s3_0-BRQ
[4] Pulsar Flink connector: https://github.com/streamnative/pulsar-flink
[5] Pulsar 首次举办全球峰会: https://finance.yahoo.com/news/rise-apache-pulsar-first-ever-162100598.html
[6] 2020 年 Pulsar Summit Virtual Conference: https://pulsar-summit.org/en/event/virtual-conference-2020
[7] Verizon Media: https://www.linkedin.com/company/verizon-media/
[8] Splunk: https://www.linkedin.com/company/splunk/
[9] Iterable: https://www.linkedin.com/company/iterable/
[10] OVHcloud: https://www.linkedin.com/company/ovhgroup/
[11] 每月一次的线上研讨会: https://www.youtube.com/playlist?list=PLqRma1oIkcWhfmUuJrMM5YIG8hjju62Ev
[12] 使用 Jet 处理低延迟流: https://www.youtube.com/watch?v=wIJGusBxB70&list=PLqRma1oIkcWhfmUuJrMM5YIG8hjju62Ev
[13] 开发 Pulsar 应用程序: https://gumroad.com/l/suukG
[14] 白皮书: https://streamnative.io/resource#white-paper
[15] StreamNative 的 Resources 页面: https://streamnative.io/resource
[16] 白皮书: https://streamnative.io/resource#white-paper
[17] Pulsar Newsletter: https://share.hsforms.com/1IS56E-RvSVuMXU-ghlkoFA3x5r4


相关阅读

《Pulsar 与 Kafka 全方位对比(上篇):功能、性能、用例》《Pulsar 和 Kafka 基准测试: Pulsar 性能精准解析》《Apache Pulsar 与 Apache Kafka 在金融场景下的性能对比分析》《专访 PMC,开源项目 Apache Pulsar 如何挑战 Kafka?》

点击「阅读原文」进入 Pulsar 世界!

本文分享自微信公众号 - StreamNative(StreamNative)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部