写点什么

社区动态 | Apache Pulsar 的社区规划和演进

作者:AscentStream
  • 2025-08-29
    上海
  • 本文字数:6148 字

    阅读完需:约 20 分钟

社区动态 | Apache Pulsar 的社区规划和演进

本文整理自 Pulsar Meetup 深圳 2024 大会,由来自 AscentStream 谙流科技联合创始和 CEO 翟佳带来的《Apache Pulsar 的社区规划演进》的演讲视频。 


嘉宾|翟佳,AscentStream 谙流科技联合创始人兼 CEO,Apache Pulsar PMC 成员,Apache 软件基金会成员

编辑|社区志愿者 赵国瑞


Apache Pulsar 的社区规划和演进

- Planning and Evolution -

消息队列发展历程

Pulsar 作为一种消息流处理技术,在消息流领域中占据了重要地位。

这个领域的发展历程最早可以追溯到上个世纪八九十年代。从早期的运行在大型机上的 MQ,到后来的运行普通机器上的开源 MQ 兴起,再到互联网、大数据时代火热的分布式架构 MQ,最后到今天云原生时代火热的 Pulsar,每个阶段都代表了不同的时代的架构需求。

最初的单机 MQ 主要用于系统解耦,验证了可行性。随着科技的进步,这类技术得到了更广泛的应用。进入 Kafka 时代后,消息队列作为数据基础设施的作用愈发重要,得到了广泛的使用。

从 2017 年起,随着移动应用的普及和数据规模的增长,企业对实时数据价值的挖掘需求不断增加。各个应用之间的协同和数据的实时处理变得至关重要。因此,消息和流的实时处理逐渐成为企业内部不可或缺的基础设施组件。Pulsar 在这个过程中发挥了重要作用,适应了不断变化的技术需求和应用场景。

Apache Pulsar 发展历程

Pulsar 诞生于 2012 年,当时雅虎内部的数据规模庞大,业务遍及全球,拥有上百个应用。这些需求与当前企业内部对消息流架构的诉求非常相似。因此,虽然 Pulsar 诞生于 2012 年,但它很快就被时代和环境筛选出来,成为一款具有前瞻性的产品。

Pulsar 在 2012 年就采用了云原生的架构,并实现了存储与计算分离的设计。这种设计围绕着云原生理念,致力于在企业内部大规模应用。随着时间推移,云原生的价值越来越被认可,特别是在近几年,随着 Kubernetes 等云原生基础设施的兴起,Pulsar 的应用也越来越广泛。

Pulsar 于 2016 年开源,最初托管在雅虎的 GitHub 仓库中。2017 年,Pulsar 捐赠给 Apache 基金会,并在 2018 年被 InfoWorld 评选为当年的最佳开源软件。巧合的是,这一荣誉恰好在 Pulsar 成为 Apache 顶级项目的第二天授予。

2019 年,StreamNative 在国内成立,专注于国内市场。经过 5 年的发展,我们在今年年初成立了 AscentStream,主办了此次活动。AscentStream 隶属于上海谙流科技,这可能是大家不太熟悉的名字。由于近年来中美地缘政治的影响,许多公司需要采取更有利于自身商业化的策略。因此,我们成立了一家专注于国内社区和商业化的实体公司,以更好地服务中国市场。

深度使用于中国头部企业

在这一过程中,我们看到许多国内用户积极推动 Pulsar 社区的发展,这是为什么我们如此关注社区并给予其大力支持的原因。用户不仅推动了社区的进步,还在功能设计和实现方面做出了重大贡献。

例如,2018 年,智联招聘在其场景中成功应用了 Pulsar,这得到了鹏辉和李辉总的大力支持。同年年底,腾讯计费平台团队也开始使用 Pulsar,并在 2019 年通过 Meetup 分享了其大规模使用的案例。

随着这些应用场景的逐渐落地,我们看到 Pulsar 已经在许多大型互联网公司的核心场景中得到了广泛应用。例如,腾讯会议、腾讯的计费平台、微信和游戏等多个场景中,Pulsar 都得到了深度应用。不仅腾讯,像滴滴、美团、快手和华为等公司也在大规模使用 Pulsar。某些用户甚至在单一部门部署了多达 1 万个节点的 Pulsar 系统。

国内用户的丰富场景、工程师资源以及数据基础,为基础设施的磨练提供了广阔空间,进一步促进了社区的发展。正是因为社区用户和爱好者的贡献,Pulsar 在消息流处理场景中的活跃度始终保持在很高水平。

根据 OSSInsight 网站的统计,Pulsar 是前十名的开源消息平台之一。自 2017 年开源以来,Pulsar 在 GitHub 上的 commit 数量一直在快速增长。随着 commit 数量的增加,Pulsar 的功能也不断丰富。这些功能的改进和新增往往源于用户在实际场景中提出的需求,这些需求逐渐形成共性功能,并得到了更多用户的支持,形成了社区的良性循环。

Pulsar:云原生的消息流平台

Pulsar 之所以能够迅速获得广泛认可并吸引大量社区贡献者,主要归功于其底层架构设计和云原生的理念。以下是 Pulsar 成功的几个关键因素:

  • 云原生架构:Pulsar 从设计之初就采用了云原生架构,这使得它在应对现代企业需求时表现出色。云原生这个概念现在已为大家所熟知,但它确实很好地概括了 Pulsar 的核心优势。Pulsar 的存储和计算分离架构允许存储和计算资源的无缝、弹性扩展,这对于大规模数据处理和消息流处理非常重要。

  • 统一 API:Pulsar 在设计时就考虑到了企业内部不同部门和业务场景的需求,制定了一个统一的 API。这样,各个部门可以方便地使用 Pulsar 来替代现有的消息组件,实现跨部门的业务场景覆盖。

  • 多租户支持:Pulsar 的多租户设计为用户提供了良好的隔离性和安全性。企业可以在同一 Pulsar 集群中为不同的团队或项目分配独立的租户,确保数据和资源的隔离。

  • 全球互联互备:Pulsar 支持跨洲、跨数据中心的消息流处理和备份。这种全球互联互备的特性使得企业可以在全球范围内实现数据的高可用性和可靠性。

Pulsar 基于云原生架构发展出来的功能

基于前述的基础,Pulsar 凭借其强大的底层架构,发展出了许多关键功能。这些功能使得 Pulsar 得到了广泛的认可,并吸引了大量社区贡献者。:

首先,Pulsar 有着丰富的客户端支持。这是社区,包括原生团队的小伙伴们共同努力的结果。最初,Pulsar 支持 C++和 Java 客户端,后来逐步扩展到涵盖各种编程语言。特别是在最近几年,基于 REST API 和 HTTP 的访问方式的加入,使得 Pulsar 的使用更加简单,不再受限于特定编程语言。

其次,Pulsar 是最早在产品中实现分层存储的消息流平台。分层存储实现了冷热数据分离,这是降低成本的主要手段之一。对于消息流场景,旧数据的访问频率较低,将其存储在二级存储(如 S3、Google Cloud Storage 或 HDFS)中可以显著降低企业的总体拥有成本。一些用户甚至采取更激进的策略,将数据快速转移到廉价存储中,从而减少主存储中的数据量,这在很多用户和客户的场景中得到了广泛应用。

第三,Pulsar 在流批融合计算引擎方面表现出色。Pulsar 与 Flink、Spark 等流批融合计算引擎有良好的对接。今年上半年,Pulsar 与 Spark 的连接器已被纳入 Spark 的主分支中,使用户更容易将 Pulsar 与这些计算引擎结合使用。

此外,Pulsar 还引入了轻量级函数计算,使得数据在生成源头(Pulsar)就能得到快速处理,减少低质量数据的传输和扩展,同时简化业务开发流程。

有了这些基础,Pulsar 在社区内的集成也变得更加重要。Pulsar 与 Debezium、Iceberg 等社区的集成,使得数据的进出变得更加便捷。通过提供无代码配置的连接器,用户可以轻松将 Pulsar 与其他数据系统连接,实现数据的无缝流动和处理。

为了进一步简化用户的业务迁移,Pulsar 还提出了协议插件模式。这种模式通过在服务端添加各种协议的插件(如 Kafka、MQTT 和 AMQP 协议),使用户无需更改代码即可切换到 Pulsar,从而感受到 Pulsar 存储与计算分离、弹性扩展的优势。特别是在 Kafka 协议方面,自 2019 年开始,Pulsar 在多个大型互联网公司的场景中得到了验证和应用,已经非常稳定,并在许多大规模场景中成功落地。

总结来说,Pulsar 凭借丰富的客户端支持、分层存储、流批融合计算引擎、轻量级函数计算、社区和生态系统集成以及协议插件模式,进一步巩固了其在消息流平台中的地位。这些创新和功能,不仅满足了现代企业的需求,还推动了社区的积极参与和贡献。

社区动态

有了这些丰富的功能,Pulsar 社区的发展也非常迅速。目前,Pulsar 社区已有超过 600 位贡献者,GitHub 上关注 Pulsar 项目的关注者已经超过 1 万人。在整个发展过程中,我们看到社区的活跃度和参与度不断提升。

通过分析 GitHub 上每个关注者的头像,我们可以看到,中国用户在其中占据了很大的比重。许多国内的互联网公司都积极参与了 Pulsar 的开发和使用。从 GitHub 提取的数据,其中越大的关键字代表背后有更多的用户和公司参与其中。这说明 Pulsar 在中国的影响力和应用广泛度是非常显著的。

公司介绍

由于国内有着坚实的社区基础、广泛的用户基础和丰富的应用场景,我们更加坚定地认为,国内的商业化可以依托这些基础来进行。因此,我们成立了上海谙流科技公司。这家公司由原先 StreamNative 负责国内社区运营和客户服务的团队成员组成,现在以新的公司形式继续运营。

我们希望能与大家一起,共同维护和建设好 Pulsar 社区。我们相信,通过大家的共同努力,Pulsar 在国内的商业化将会取得更大的成功。

Apache Pulsar 功能和场景优势

- Advantages and Use Case -


MQ 的场景优势

首先是 Pulsar 在 MQ(消息队列)场景中的优势:

在雅虎最初的使用场景中,Pulsar 主要用于替换各种 MQ。当时实时数据和大数据管道的基础设施还没有大规模兴起。Pulsar 在雅虎内部支持了超过 100 个应用,并为雅虎的 7 亿用户和 60 多个国家的业务提供服务。这种规模在当时的互联网环境中,仅次于 Google。Pulsar 在这些关键业务场景中表现出色,特别是在广告计费等需要高可靠性和全球互联互备的业务中,展示了其强大的性能和稳定性。

Pulsar 被验证为经过战斗考验的产品,许多国内用户愿意采用 Pulsar,主要因为它已经在关键业务场景中得到了充分验证,不需要太多二次开发和功能验证即可满足需求。这种验证在雅虎、推特、Salesforce 和 EMC 等大公司内部已经广泛应用,并且在 2018 年之前就在这些公司内有了深度落地。

在 Pulsar 成为 Apache 项目之后,它在国内外的大型互联网公司中,如滴滴、腾讯会议、半导体制造业(如应用材料)等,进一步展示了其在高可靠性和高性能场景中的优势。Pulsar 在这些场景中的成功应用,使得用户可以放心使用,减少了实施风险。

除了长期积累的稳定性外,Pulsar 的功能丰富性也是其在 MQ 场景中脱颖而出的关键。作为基础设施,Pulsar 能够满足企业内部各种场景的需求。通过统一的 Pulsar API,企业可以在各种业务场景中实现灵活适配,简化了业务开发和维护。Pulsar 支持多种消费模式、持久化要求、数据互联互备、消息消费语义等,确保在任何业务需求下都能提供可靠支持。

在企业内部,Pulsar 因其良好的适应性和灵活性,能够满足各种场景的需求。这不仅使得企业可以统一使用一套组件,提升业务协同效率,还减少了维护多套系统带来的资源利用率、运维和开发成本问题。

在单一业务方面,Pulsar 的弹性扩展能力也表现出色。面对业务增长和波动,Pulsar 能够通过无缝弹性扩展来满足需求。这在电商促销活动(如双十一、618)、高峰期零售订单处理(如午餐高峰点餐)等场景中尤为重要。Pulsar 的弹性扩展不仅降低了运维复杂性,还为业务的稳定性提供了坚实保障。

一些客户通过 Pulsar 实现了从数百套集群到 6 套集群的整合,显著提高了业务协同效率。

Stream 场景下优势

其次是 Pulsar 在实时数据处理场景中的优势。

在这个领域,大家更熟悉的可能是 Kafka。Kafka 在其诞生之初,主要解决了高带宽的数据传输需求,提高了资源利用率。然而,随着业务的发展,特别是近几年,我们看到用户对 topic 数量、弹性扩缩容、延迟稳定性、数据存储等方面的要求越来越高。

在这些新需求中,许多都与成本有关。例如,Pulsar 支持的 topic 数量比 Kafka 高一个数量级,因为 Pulsar 使用专有的存储设计,而不是简单依赖文件系统,减少了 page cache 的干扰。在弹性方面,Pulsar 的原生架构使得弹性扩展可以无缝进行,不需要过多的人工干预,减轻了运维负担。延迟稳定性也是 Pulsar 的一个优势,Pulsar 的数据存储设计经过了丰富的场景验证,即使在高负载下也能保持低延迟。

Pulsar 还支持更长时间的数据存储,通过分层存储可以将历史数据移动到二级存储中,降低整体成本。这些功能满足了用户在 IoT 传感器、智慧城市等场景中的需求,这些场景除了高带宽外,还需要支持大量的 topic、弹性扩展和低延迟。

除了满足这些基本需求外,Pulsar 还在流数据处理中的一致性保障方面表现出色。在实时推荐和用户画像等关键业务场景中,Pulsar 能够通过一致性保障,确保数据的准确性和及时性,避免因数据错误导致的业务问题。即使在严格的一致性要求下,Pulsar 也能提供高带宽和高性能,这使得 Pulsar 在关键业务场景中比 Kafka 更具优势。

用户在切换到 Pulsar 时,通常面临的一个障碍是现有基础设施的改造成本。为了解决这个问题,Pulsar 通过提供 Kafka 协议适配器(KoP)使得用户无需更改现有代码即可切换到 Pulsar。KoP 在 Pulsar 的 broker 内部提供了 Kafka 协议的解析,这样用户可以继续使用 Kafka 的接口,而享受 Pulsar 提供的服务。

在许多关键业务场景中,我们对 Pulsar 和 Kafka 进行了对比测试。结果显示,在相同场景下,Pulsar 在带宽和性能上表现优异,甚至在某些业务场景中超过了 Kafka。此外,在节点故障恢复方面,Pulsar 的恢复时间更短,对业务影响也更小,而 Kafka 的恢复时间较长,对业务的影响更大。

云原生的优势

总体来看,Pulsar 在消息队列和实时数据处理方面的优势最终还是体现了其云原生架构的优势。Pulsar 的几乎所有功能都是围绕云原生构建的,目标是让业务端能像使用自来水一样无缝地使用资源,同时让基础设施建设方能够以弹性、高效、少人工参与的方式进行运维。

Pulsar 自诞生以来就采用了云原生架构,这一点在其后续发展过程中始终得到了坚持和优化。所有功能都紧密围绕云原生理念进行构建,因此,从底层来看,Pulsar 给用户带来的体验就是一种真正的云原生体验。

需要注意的是,云原生体验不仅仅是指在公有云上的部署,即使在私有化环境中,有了 Pulsar 的多租户、存储与计算分离架构以及其他云原生功能的支持,用户同样可以获得无缝的云原生体验。

对于业务方,Pulsar 提供了多租户和灵活的资源管理,使得业务团队可以自行申请和分配资源,而不需要过多依赖运维团队,从而提高了业务的弹性和敏捷性。对于运维方,Pulsar 的存储与计算分离架构简化了运维流程,减少了运维时间,提高了运维效率。

Apache Pulsar 社区近况

- Current Status -

从 Pulsar 3.0 版本开始,我们引入了长期支持(LTS)版本,以确保系统的稳定性。随着社区用户贡献的代码越来越多,我们发现有些新功能可能还不够稳定,存在一些 bug。因此,引入 LTS 版本可以为用户提供更加稳定和可靠的使用体验,使得系统升级和使用更加顺畅。

性能提升

除了 LTS 版本外,Pulsar 3.0 之后的版本还在性能上做了显著提升。社区中有很多关于 Pulsar 3.0 性能提升的文章,详细介绍了这些改进。一方面,我们在 CPU 和锁的利用上做了优化,提升了整体性能。另一方面,我们在存储层面也进行了加强,比如通过 DFIO(Direct File I/O)方式,进一步优化了存储性能。

如果大家对这些性能提升的具体细节感兴趣,可以通过 Pulsar 社区获取更多信息。社区中有大量资源和文章,能够帮助用户更好地理解和应用这些改进。

其他功能

其他值得关注的改进:

  • PIP-192 - New Load Balancer

  • PIP-195 - Scalable delayed delivery message

  • PIP-264 - Enhanced OpenTelemetry-based metrics

Pulsar 还围绕用户关注的一些功能进行了优化和增强。例如,为了在节点出现故障或宕机的情况下保持 topic 的高可用性,我们引入了新的负载均衡器(load balancer)。这个负载均衡器能够在节点宕机后快速恢复 topic,使得不可用时间缩短到秒级,甚至更短。

此外,Pulsar 还支持大规模的延迟消息,这是许多社区用户非常关注的功能。在监控和度量(metrics)方面,Pulsar 与 OpenTelemetry 进行了结合,以实现度量数据的统一采集和管理。这对于许多需要高质量数据服务和实时监控的用户来说是非常重要的改进。

用户头像

AscentStream

关注

还未添加个人签名 2017-10-19 加入

还未添加个人简介

评论

发布
暂无评论
社区动态 | Apache Pulsar 的社区规划和演进_AscentStream_InfoQ写作社区