关于kafka:揭秘-Apache-Pulsar-如何挑战-Kafka

42次阅读

共计 6742 个字符,预计需要花费 17 分钟才能阅读完成。

本专访对 StreamNative 联结创始人兼 CTO、Apache Pulsar PMC 翟佳的采访内容。在本采访中,次要介绍了 Apache Pulsar 作为云原生流数据工具在音讯解决畛域的劣势个性、与 Kafka 的一些比照概要以及 StreamNative 公司的介绍和倒退方向。

开源流数据公司 StreamNative 近期发表实现数百万美元 Pre-A 轮融资,日前正式退出 CNCF。其开创团队成员是 Apache Pulsar、Apache BookKeeper 我的项目的原生外围开发者,StreamNative 也被称为开源音讯零碎基础设施 Pulsar 背地的公司。(本文中 Pulsar、BookKeeper 别离指代 Apache Pulsar、Apache BookKeeper)

StreamNative 是一家基于 Pulsar 的商业公司,提供云原生的实时音讯和流数据处理技术。Pulsar 是 Yahoo 外部在 2012 年为构建对立音讯平台而构建的,采纳分层分片的零碎架构。下层 Pulsar Broker 提供无状态的服务层;底层 BookKeeper 提供高性能、低提早和强一致性的 IO 服务。

在往年 6 月的 Pulsar Summit 中,Splunk 和 Yahoo 做了测试和剖析:Pulsar 帮忙 Splunk 将老本升高了 1.5 – 2 倍,提早升高了 5 – 50 倍,经营老本升高 2 – 3 倍;在 Yahoo 的部署中,Pulsar 反对等同规模的业务量,还在保障更高数据服务质量的状况下,耗费只有 Apache Kafka 的一半的理论硬件资源老本。

不过,在目前开源的分布式音讯零碎中,Kafka 仍旧有很高的知名度和使用率,也同样是 Apache 基金会的顶级我的项目。Pulsar 在技术和生态上有什么中央上优于 Kafka?将来是否有更大的倒退空间?Pulsar 和 StreamNative 是如何共生的?StreamNative 因何取得投资,这对其余开源我的项目公司有什么启发?

对此,咱们采访了 StreamNative 联结创始人兼 CTO 翟佳,通过他更多地理解 StreamNative 的产品与团队,和 Pulsar、BookKeeper 两个我的项目。

嘉宾介绍:
翟佳,StreamNative 联结创始人兼 CTO。在开办 StreamNative 之前,在 EMC 从事分布式、文件系统、流存储相干的设计和开发,目前是 Apache BookKeeper 和 Apache Pulsar 两个我的项目的 PMC 成员。

开源音讯零碎基础设施 Pulsar

翟佳介绍,Pulsar 诞生于 2012 年,最后的目标是为在 Yahoo 外部,取代其余音讯零碎,构建对立逻辑大集群的音讯平台。过后的其余音讯零碎(包含 Kafka),都不能满足 Yahoo 的需要,比方大集群多租户、稳固牢靠的 IO 服务质量、百万级 Topic、跨地区复制等,因而 Pulsar 应运而生。

“过后在 Yahoo 外部叫 CMS(Cloud Message Service),从名字能够看出 Pulsar 诞生时就动摇了云的方向”,翟佳介绍,2015 年,Pulsar 实现了在 Yahoo 外部的部署和替换,大规模部署在 Yahoo 外部,服务于 Yahoo mail、Yahoo Finance、Yahoo Sports/ Flickr 及广告平台等大规模的场景。2017 年 6 月 Pulsar 被捐献给 Apache 基金会,2018 年 9 月毕业成为 ASF 顶级我的项目。

当初,Pulsar 被  StreamNative 看做是一个兼属“流数据 + 云原生”畛域的我的项目。那么 Pulsar 作为一个以“云”为方向的音讯基础设施,其“流数据”和“云原生”个性都是如何实现的呢?这里翟佳介绍了一些 Pulsar 的技术个性。

Pulsar 作为音讯的基础设施,必然会和存储、和计算层有深刻的交互。

在存储方面,Pulsar 利用 Apache BookKeeper 的劣势,踊跃扩大和开掘 Pulsar 架构的劣势。基于 Pulsar 对 Topic 的分片存储,咱们能够很天然地将老的分片从 BookKeeper 迁徙到的二级存储中。通过层级存储,能够反对无限量的流数据。此外咱们正在二级存储中反对列存模式的反对,这样能够更高效的撑持批处理的申请,真正实现批流交融的存储需要。

对于计算层,Pulsar 的思路是更多地拥抱其余开源我的项目。咱们在 Pulsar 中提供了结构化(Schema)的反对,保障 Pulsar 中的数据能够依照数据结构被其余零碎了解。比方 StreamNative 开源的 pulsar-spark、pulsar-flink 连接器等,都是为了更好的和其余大数据引擎整合的例子。Pulsar SQL 也是间接整合 Presto 来反对 Pulsar 中的数据查问。

函数式轻量化计算(Pulsar Functions),是 Pulsar 联合 Serverless 的理念在音讯畛域的一个翻新。函数的编写很简略,运行时,每个音讯触发一次函数的计算。这种轻量级的计算,为用户提供了 Spark、Flink 之外一个很好的补充,能够不便用户解决很多常见的简略计算场景,比方数据的荡涤、路由、Enhancement 等。

Pulsar 借助在存储层的劣势,通过和更多的大数据生态整合,为用户提供一整套基于事件流的数据处理平台。

在音讯畛域,Pulsar 是第一个将存储计算拆散云原生架构落地的开源我的项目。

除了存储计算的分层架构,Pulsar 零碎中的节点对等、大集群治理带来的资源池化、高可用个性带来的零碎弹性等和云原生的理念非常符合。

流数据依照有没有明确的起止地位,能够分为有界流和无界流。流入音讯平台中每个 Topic 的数据,很天然地能够作为事件流的一种数据体现。Pulsar 的 Pub/Sub 接口,能够让计算平台更不便地把 Topic 当作流数据来解决。同时 Pulsar 底层的存储层 BookKeeper,又将一个 Topic 分为了多个有界的分片,和 HDFS 中的数据块对应,间接拜访 BookKeeper 中的分片,更加不便批数据的解决引擎。联合 Pulsar,能够更便捷地实现在数据处理中的批流对立。

在批流对立的实际中,Flink/Spark 等计算引擎都有了很好的形象,然而在数据的存储层没有太多的工作,StreamNative 认为 Pulsar 的架构很匹配批流交融的存储需要,这是 Pulsar 在数据处理畛域的一个劣势。

StreamNative 正在 Pulsar 的二级存储中反对列存格局,让拜访 Pulsar 的批处理引擎更加高效。这样 Pulsar 提供了对立的数据存储层,用户只用关怀下层的数据处理,而不必关怀底层的数据存储细节。

Pulsar 应用 BookKeeper 作为存储核心

Pulsar 应用 BookKeeper 作为存储核心。BookKeeper 提供的 API 形象度很高,简略来说就是一个提供有限个 Write-Ahead-Log(WAL)的分布式存储系统。

从 BookKeeper 毕业成为 Apache 顶级我的项目,曾经有 5 年多的工夫,期间始终有 Yahoo、Twitter、Salesforce、EMC 等公司的深度应用和踊跃奉献,BookKeeper 相对来说曾经比较稳定和成熟。StreamNative 次要通过 Pulsar 的社区增长来带动 BookKeeper 的社区增长。

依据 Pulsar 的性能需要,相应地减少 BookKeeper 的性能。StreamNative 组织的线上线下流动中,也常邀请 BookKeeper 的相干用户参加分享和交换。从 GitHub 上 BookKeeper 我的项目 Star 数的增长趋势,也能够很显著的看到两个社区的互相带动。

Pulsar 和 Kafka 比照

开发者最关怀的问题可能还是 Pulsar 好用在哪?翟佳从三个方面比照 Pulsar 与 Kafka,以阐明 Pulsar 的特点和劣势:

第一,从利用场景来说,Pulsar 对用户来说提供了对立的音讯模型,一方面能够满足各种 MQ,例如 RabbitMQ、ActiveMQ 等线上交易系统的需要;一方面能够满足和 Kafka 相似的高吞吐的需要的场景。这决定了 Pulsar 在生态上,有比 Kafka 更多的应用场景和需要。

第二,架构上,Pulsar 有存储计算拆散的云原生架构的劣势。因为在 Broker 层不存储任何数据,这种架构为用户带来了更高的可用性、更灵便的扩容和治理、防止数据的 reblance 和 catch-up。

BookKeeper 作为 Pulsar 的存储层,它诞生时就是为元数据的一致性服务的,能够在保障高带宽、低提早的状况下,为用户提供更好的一致性保障;相比 Kafka 依赖文件系统来保障一致性,BookKeeper 有原生的一致性协定,数据实时刷盘,读写硬件隔离,这些都为 Pulsar 带来了更高可靠性和数据服务质量。

第三,在社区上,Kafka 作为过后流数据的惟一抉择有肯定的先发劣势。Pulsar 凭借架构和性能方面的劣势,在过来两年的关注度和使用量一直疾速减少,国内外的 Pulsar 用户和贡献者数量也在疾速减少。在前两周,寰球我的项目贡献者人数已冲破 300 位。

目前公司对音讯平台的需要降级集中在降低成本、便捷操作两个方面。Pulsar 以下的个性正是合乎音讯平台倒退的趋势:

  • 云原生,升高零碎的人工运维和治理的老本
  • 大集群,对立管控系统资源
  • 对立平台,便捷数据的共享和治理

翟佳总结,Pulsar 的劣势在于其独特设计和分层分片的零碎架构。借助 Pulsar 的架构和性能,用户能够部署对立的集群,通过池化的资源和多租户,来满足整个组织外部的各种音讯场景的需要,缩小小集群、多集群的简单治理,进步资源利用率,不便集群外部数据的共享。

Pulsar 借助 BookKeeper 也为用户提供了更好的数据服务质量,在保障高带宽、低提早的同时,提供了更高的一致性和长久化。从运维和资源弹性角度看,Pulsar 集群的扩缩容更加迅速便捷;节点的替换和更新不会影响业务的可靠性和可用性。从线上部署老本来说,比照 Kafka,Pulsar 也有相当大的劣势。

StreamNative 近期也发文具体比照 Pulsar 与 Kafka:

《Pulsar vs. Kafka — Part 1 — A More Accurate Perspective on Performance, Architecture, and Features》
???? https://streamnative.io/blog/…

《Pulsar vs Kafka – Part 2 – Adoption, Use Cases, Differentiators, and Community》
???? https://streamnative.io/blog/…

基于 Pulsar 的 StreamNative

在理解了 Pulsar 的根底之上,能力更好了解 StreamNative。

StreamNative 在开发与运维 Pulsar 的同时,次要提供基于 Pulsar 的云端托管与运维、技术支持服务。须要留神的是,Pulsar 是 Apache 基金会下的顶级开源我的项目,其所有权属于中立的基金会,这也是 StreamNative 能够为 Pulsar 做社区经营的信赖根底。

StreamNative 成立于 2019 年,公司开发人员都是 Apache Pulsar 晚期的一批贡献者,很多成员也是 Apache Pulsar 的 PMC 成员或 Committer,其联结创始人兼 CEO 郭斯杰 是 Apache Pulsar 原型设计和次要开发者。

翟佳介绍,StreamNative 聚焦的两个次要方向是 Pulsar 社区和云,这也是投资人极为看好的方向。

产品方面,StreamNative 的产品是 StreamNative Cloud,为企业在云上提供全托管式的“Apache Pulsar 即服务”,翟佳介绍,“相熟 Pulsar 的工程师会对 Pulsar 的存储计算拆散和分层分片的弹性零碎架构,印象比拟粗浅,这也是 StreamNative 常说 Pulsar 领有云原生架构的一个起因。”StreamNative 的服务适宜对 Pulsar 集群运行品质、管控和保护有更高需要的客户。

StreamNative 团队目前的次要工作内容还包含欠缺 Pulsar 社区。

对 Pulsar 社区的构建次要是集中在产品及与用户的互动,奉献和改良 Pulsar 的性能、丰盛 Pulsar 的周边生态、帮忙 Pulsar 的版本公布和保护、沟通社区用户并帮忙解决上线 Pulsar 中遇到的阻碍、组织加入相干 Pulsar 的 meetup 等推广宣传流动等。这些工作次要是欠缺 Pulsar 的文档、升高 Pulsar 的入门门槛,丰盛 Pulsar 和其余零碎的集成和交互,做好用户起步的根底工作。

“长期来看,更重要的是丰盛社区的用户场景、吸引更多的用户参加社区,构建一个沉闷的、能够长期继续倒退的社区” 翟佳走漏,除了 Pulsar 本身的劣势,社区和客户的认可也是促成 Pre-A 轮融资胜利的起因之一。目前 Pulsar 曾经在一线的互联网场景中失去了宽泛的利用。

此外,StreamNative 也在欠缺 StreamNative 基于 K8S 的云平台。目前曾经在 Google Cloud 上公布了云平台预览版 StreamNative Cloud,预计在年底公布国内的预览版。

开源我的项目与商业公司

在这次访谈中,翟佳大部分工夫都在介绍 Pulsar。他认为,开源我的项目与商业公司是互相成就的。

胜利的开源我的项目背地,都有一家商业化公司来为社区和用户继续提供外围反对:社区用户被开源产品的架构和性能所吸引,参加社区;公司在服务社区的过程中,一直取得反馈和翻新,欠缺开源产品在各种生产环境的综合体现;公司再利用成熟的我的项目和积淀来服务有须要的社区客户——这样造成一个良性循环。

由 Pulsar 外围团队率领的 StreamNative 公司和 Pulsar 社区也是这样一种关系。

谈到守业商机,作为技术人的翟佳示意本人始终抱着“技术扭转世界”的幻想,“StreamNative 开创团队成员亲自见证经验了 3000+ Pulsar 存储集群规模的搭建和运维,见证和经验了 Pulsar 和 BookKeeper 在 Yahoo、Twitter 线上的长期磨砺和迭代,明确感触到 Pulsar 在架构和性能方面的劣势,以及与云原生方向的匹配和一致性。同时,咱们看到开发者对 Pulsar 的架构和产品的认可,也感触到用户在应用时遇到的痛点。”

此外近两年开源商业化的模式一直成熟,在 Spark、ES、MongoDB、TiDB 等开源我的项目背地,都有商业公司在崛起,StreamNative 认为 Pulsar 和 StreamNative 有同样的机会。

不过,StreamNative 破费了如此多的工夫与精力在 Pulsar 与其社区生态上,是否会造成 Pulsar 与商业公司绑定,减弱我的项目的开源合作属性呢?

对此翟佳认为, 这种绑定,是对开源合作的促成,而非减弱。

Pulsar 的外围是全副开源的,StreamNative 公司和社区用户用的是同样的一份代码。StreamNative 投入社区会带来社区的信赖和倒退;社区的反馈会带来 Pulsar 的成熟和翻新迭代;最终会有更多的用户置信 Pulsar 和 StreamNative。

其次,金融、证券、批发、IoT 等畛域都有客户在拥抱和应用 Pulsar。StreamNative 在反对这些客户的同时,Pulsar 也通过不同的场景变得更加成熟。通过对客户的服务,StreamNative 能够理解相干垂直畛域的需要,进而一直接触和满足更多雷同畛域的客户。

Pulsar 和 Kafka 很相似,都是 Apache 软件基金会的我的项目,Linkedin 在捐献 Kafka 之后,成为了 Kafka 的用户,Yahoo 当初也是 Pulsar 的用户。在 Linkedin 和 Yahoo 的角度,保护开源我的项目(Kafka/Pulsar)在原公司的应用,满足原公司线上的业务需要是最重要的,除此之外开源能让我的项目更加成熟和强壮,对原公司有不少益处。

综上,Pulsar 我的项目自身往云原生方向倒退,看好此方向的 StreamNative 投入相对的精力和工夫在 Pulsar 上,一方面帮忙拓展 Pulsar 的生态,反刍本身的商业资源,另一方面握住 Pulsar 和 BookKeeper 的技术劣势,以区别其余的 Pulsar 服务商。这些或者就是投资人当初看好 StreamNative 的起因,将来也可能会是更多开发者和用户抉择 StreamNative 的理由。

文中“Apache”、“Apache Pulsar”、“Apache BookKeeper”、“Pulsar”、“BookKeeper”皆为 Apache 软件基金会在美国或 / 和其余国家地区的注册商标或商标。所有其余品牌和商标均为其各自所有者资产。

正文完
 0