作者:翟佳,AscentStream 谙流科技联合创始人兼 CEO,Apache Pulsar PMC 成员,Apache软件基金会成员。
注:此篇 《基于 Apache Pulsar 构建统一消息流 PaaS 平台》为翟佳老师在 Apache PulsarMeetup 北京 2024 大会演讲的转录文字,经社区志愿者赵国瑞 ronnie 编辑修改完成,强烈推荐阅读。
Apache Pulsar 社区简介
近年来,消息流和分布式基础设施领域的进步吸引了广泛的关注。自 20 世纪 80 年代和 90 年代 IBM 等公司的早期产品,到 2000 年代初的开源项目,再到 2007 年大数据和分布式系统的兴起,消息系统经历了几轮技术革新。Kafka、RocketMQ 等分布式消息系统的崛起,正是为了满足用户日益增长和变化的需求。
在这样的技术演进背景下,Apache Pulsar 应运而生。它起源于 2012 年的雅虎实验室,并于 2017 年正式对外开源。Pulsar 的诞生恰逢云原生时代的到来,它凭借先进的设计和强大的功能,迅速赢得了开源社区和众多技术专家的青睐,成为了分布式消息系统领域的一颗新星。
Pulsar 的起源
回顾 Apache Pulsar 的发展历程,2012 年是其诞生元年。在那个时期,雅虎的数据规模在全球范围内仅次于谷歌,其服务覆盖全球五大洲,拥有众多数据中心以及超过 100 个内部应用程序。然而,这些应用程序各自为战,作为独立的单机系统运行,这导致了运维的复杂性和效率的低下。面对这样的挑战,雅虎内部的一群 Hadoop 技术专家开始探索在消息领域实现更高层次的抽象和统一的可能性。正是这种对技术革新的追求和对效率提升的渴望,催生了 Pulsar 的诞生。
开源与社区
2016 年,雅虎将 Pulsar 开源,并在 2017 年将其捐赠给 Apache 软件基金会。随后在 2018 年,Pulsar 荣耀毕业,正式成为 Apache 的顶级项目。自开源以来,Pulsar 迅速吸引了业界的广泛关注。特别是在 2018 年,即 Pulsar 成为顶级项目的前一天,它被 InfoWorld 评为 “年度最佳开源软件”,并在 2021 年再次荣获此项殊荣。
Pulsar 的社区活力非凡,全球贡献者数量已超过 600 位,在 GitHub 上的项目获得了超过 14,000 个星标。众多知名厂商和企业对 Pulsar 给予了极大的关注,并积极参与到社区的建设中。
Pulsar 的应用场景
在我们的日常生活中,Apache Pulsar 的应用已经无处不在。例如,我们经常使用的腾讯会议、视频号等直播平台,背后可能就有 Pulsar 的技术支持。此外,打车应用、移动终端设备如华为、vivo、苹果等,也都在利用 Pulsar 的技术。这些应用的广泛采用,都得益于开发者对 Pulsar 的贡献和采纳,使其得到了快速的应用和发展。
本地化与未来
在 2019 年初,StreamNative 公司正式成立,专注于推动 Pulsar 的商业化进程和生态系统建设。五年后,谙流科技成立,致力于服务中国社区并推动 Pulsar 在中国的本地化落地。
在消息流和分布式基础设施领域,Pulsar 已经取得了显著的进展。随着社区的不断壮大和技术的持续迭代,我们有理由相信,Pulsar 在未来将发挥更加重要的作用,并满足用户日益多样化的需求。
PaaS 模式和 PasS 平台
在对 Apache Pulsar 进行了初步介绍之后,我们希望读者能够对 Pulsar 有一个更加深入的了解。为此,我们开展了一系列的社区访谈,旨在探究是什么因素促使大家选择使用 Pulsar。通过这些访谈,我们总结出了一个共同的趋势:用户选择 Pulsar 的主要原因是为了构建一个统一的内部消息流平台,这样的平台能够显著提升业务开发的速度和底层运维的效率。
PaaS 平台的发展与重要性
提及 PaaS(平台即服务),这个概念自 2011 年诞生以来,已经走过了十余年的发展历程。随着云原生技术的兴起,PaaS 逐渐成为企业关注的热点。PaaS 与 IaaS(基础设施即服务)的主要区别在于,PaaS 在基础设施层之上提供了一个集成的开发和运行环境,极大地减轻了开发者对底层硬件和系统管理的负担。
在消息流中间件领域,PaaS 平台扮演着至关重要的角色。在传统的企业架构中,各个业务部门往往需要自行构建和维护一整套系统,从前端到后端全面负责,这不仅增加了运维的复杂性,也降低了效率。通过引入 PaaS 平台,我们期望实现业务开发部门与底层数据运营部门的分离,使它们能够更加专注于各自的核心目标,从而提高整体的工作效率和响应速度。
PaaS 模式的三大优势
在大型企业中,业务开发部门与底层系统部门往往面临着目标不一致的挑战:
- 业务开发部门: 追求的是快速部署和迭代,他们希望能够迅速获得开发环境,而无需投入大量精力维护底层基础设施。
- 底层平台部门: 致力于系统的稳定性和性能优化,他们希望技术能够被复用,而不必深入了解每个业务的具体细节。
PaaS 模式应运而生,旨在解决这一矛盾,并带来了以下三个主要优势:
1. 提升业务开发效率
PaaS 平台让业务开发人员能够专注于业务逻辑的开发,而不必被底层的技术细节所困扰。这种模式极大地提高了开发效率,加快了产品从概念到市场的转化速度。
2. 促进技术积累与最佳实践的共享
PaaS 平台为不同业务部门和应用之间的技术积累和最佳实践的共享提供了便利。由于底层平台的统一,业务开发人员可以在不同项目间复用经验和最佳实践,而系统工程师则可以持续优化统一的基础软件,避免了资源的重复投入。
3. 提高运维效率
PaaS 平台简化了底层的运维和环境管理工作,使运维人员能够更高效地集中管理资源。这种集中化管理有助于技术资源和经验的共享与积累,有效降低了运维的复杂性和成本。通过这种方式,企业能够更加灵活地应对市场变化,快速响应业务需求。
基于 Pulsar 构建 PaaS 平台的关键要素
在构建基于 Pulsar 的 PaaS 平台时,从用户和客户的角度出发,我们需要考虑以下几个关键支持点:
1. 灵活的平台架构
Pulsar 平台需要具备高度的灵活性,以适应上层业务开发人员可能需要的各种不同模式。这意味着底层的 Pulsar 平台必须能够满足多样化的业务需求,并支持不同的应用场景。灵活性是 PaaS 平台的核心特性之一,它允许开发者快速适应市场变化,迭代产品功能。
2. 强大的扩展性和稳定性
随着数据和业务量的增长,尤其是在订单高峰期或热点事件爆发时,底层基础设施必须具备强大的扩展性和稳定性,以支撑业务的平稳运行。Pulsar 作为一个分布式消息系统,其高吞吐、低延迟的特性,以及持久化、一致性的保障,使其成为构建稳定和可扩展平台的理想选择。
3. 多租户支持
多租户是构建统一 PaaS 平台的重要特性。它允许上层的业务开发人员通过权限管控,访问和共享更多的数据和资源。同时,底层的运维工程师可以通过共享的集群,更高效地管理资源,积累技术经验。多租户支持不仅提高了资源的利用效率,而且通过技术手段确保了不同租户之间的数据隔离,保护了数据的隐私和安全性。
接下来,让我们深入探讨 Pulsar 如何满足这三个方面的需求。
Pulsar PaaS 特性 1:统一的消息接口与灵活的架构
消息系统的多样性挑战
在 Pulsar 出现之前,雅虎内部运行着 100 多个应用程序,每个应用程序可能都维护着自己的 RabbitMQ 实例,或者使用自定义的 JMS 协议。随着 2013 年大数据和移动设备的迅猛发展,数据量急剧膨胀,许多部门还不得不维护自己的 Kafka 集群。这种状况导致了技术栈的复杂性增加,同时也带来了运维方面的重大挑战。
Pulsar 的统一抽象
Apache Pulsar 通过引入统一的消息模型,有效解决了雅虎内部面临的技术栈复杂和运维挑战。Pulsar 将不同的消息传递模式(例如消息队列 MQ 和流处理 stream 模式)抽象为一个统一的底层日志结构。这种设计意味着,无论是需要快速响应和低延迟的 MQ 场景,还是需要高吞吐量和顺序性的日志场景,Pulsar 都能够提供相应的支持。这也是 Pulsar 采用存算分离架构的主要原因之一。
- 灵活的消费模式:Pulsar 支持多种消费模式,包括共享订阅、独占订阅、基于关键字的分区等,以满足不同业务场景对顺序性、并发性和一致性的不同需求。
- 可配置的持久性:Pulsar 允许用户根据业务的具体需求配置不同的持久性级别。对于需要极高可靠性保障的金融交易数据,可以设置多副本存储以确保数据的持久性;而对于实时性要求高但容错性要求相对较低的数据,可以选择较低的持久性配置以优化性能。这种灵活性使得 Pulsar 能够适应各种不同的业务场景。
多协议支持
为了进一步增强其灵活性,Pulsar 还支持多种消息协议,包括 Kafka 和 AMQP 等。这种多协议支持的能力使得企业能够将现有的复杂多消息系统环境平滑迁移到 Pulsar 平台上,从而简化整体架构和运维流程
Pulsar PaaS 特性 2:强大的扩展性和自愈能力
分离的存储与计算架构
Apache Pulsar 采用的存储与计算分离架构是其设计的一大亮点,其中 BookKeeper 作为其持久化存储的组件。这种架构为 Pulsar 带来了出色的扩展性和强大的自愈能力。
- 水平扩展:面对业务增长或数据量的增加,Pulsar 能够通过简单地添加新的计算或存储节点来实现集群的平滑扩展,而无需中断现有业务。
- 自动负载均衡:Pulsar 具备自动将负载均衡分配到新增节点的能力,这确保了资源的高效利用和业务的稳定运行。
自愈能力
Pulsar 的数据存储采用了对等的、无主从之分的分布式架构,这使得当节点发生故障时,系统能够自动进行故障转移和数据恢复,从而保障业务的连续性。
- 数据无热点:得益于这种对等的存储架构,数据在集群中均匀分布,有效避免了数据热点问题。
- 无需手动干预:在节点故障时,运维人员无需进行手动的数据迁移或配置调整,Pulsar 的自愈机制将自动处理这些问题,显著降低了运维的复杂度。
Pulsar PaaS 特性 3:强大的多租户支持
多租户的重要性
对于大型企业而言,多租户支持是构建统一 PaaS 平台的关键特性。通过实施多租户架构,企业能够实现以下优势:
- 数据共享与隔离:不同的部门或业务线可以在同一个平台上共存,既可以共享必要的数据资源,又可以确保各自的数据安全和隔离。
- 最佳实践共享:各个业务部门能够在平台上共享技术积累和最佳实践,从而提升整个组织的开发效率和创新能力。
Pulsar 的多租户架构
Pulsar 在设计时就充分考虑了多租户的需求,提供了一套包括命名空间(Namespace)和主题(Topic)的层级结构。
- 租户(Tenant):代表一个组织或业务单元,拥有独立的命名空间和资源配置,确保了资源的隔离和专属性。
- 命名空间(Namespace):作为租户下的逻辑分区,命名空间可以进一步细分,用于区分不同的主题和设置应用权限,提供了灵活的资源管理和权限控制。
- 主题(Topic):作为实际的消息通道,主题是业务应用进行消息生产和消费的地方,支持高吞吐量的消息传递。
Pulsar 的这种多租户架构不仅支持了资源的高效利用,还为不同租户提供了隔离的环境,使得每个租户都可以根据自己的需求定制和优化资源配置,同时保持了数据的安全性和隐私性。这种设计使得 Pulsar 成为了企业构建云原生 PaaS 平台的理想选择。
谙流科技
公司介绍
在近期的发展中,谙流科技的成立标志着 StreamNative 在中国的团队进行了重要的拆分,以便更好地服务中国客户。这一战略举措旨在依托国内主体,专注于为中国客户提供专业的服务和支持。在这一过程中,谙流科技致力于在国产适配和自动化部署等方面进行深入的工作,以满足企业在落地 Pulsar 时面临的多样化需求和对接方式。
Pulsar 作为一个具备良好基础的分布式消息系统,其多租户架构、灵活的消费模式以及可配置的持久性等特点,使其成为企业构建统一 PaaS 平台的理想选择。然而,每个企业都有其特定的需求,因此,在企业落地 Pulsar 的过程中,需要完成许多细致的工作,以确保系统的平稳运行和高效管理。
谙流科技的成立,以及其对国产适配和自动化部署的重视,体现了对中国市场特定需求的深刻理解。通过提供定制化的解决方案和服务,谙流科技致力于帮助企业更高效地管理数据流动,充分挖掘数据价值,为企业数字化转型提供强有力的支持。
商业服务
为了助力企业更高效地实施 Pulsar 服务,我们不断丰富和增强我们的产品线。除了 Pulsar 本身的优势之外,我们还做了以下几方面的增强和改进:
- 多集群互联互备:我们提供了多集群之间的互联互通解决方案,确保客户和用户侧的集群能够实现高可用性。这涉及到跨集群灾备场景,确保在一个集群发生故障时,可以无缝切换至另一个集群,保障业务连续性。
- 协议兼容:我们增强了 Pulsar 与其他消息协议的兼容性,包括 Kafka、AMQP 等,使得企业能够平滑迁移至 Pulsar 平台。Pulsar 通过在服务端添加各种协议的插件,使用户无需更改代码即可体验 Pulsar 的优势,尤其是在 Kafka 协议方面,Pulsar 已经在多个大型互联网公司的场景中得到了验证和应用。
- 生产者与消费者的隔离:我们实现了企业内部业务方与使用方的良好隔离机制,确保了消息的安全性和可靠性。通过多层级的资源结构,Pulsar 不仅在命名空间上做了逻辑隔离,同时也支持物理隔离,确保不同租户或业务部门之间的数据安全和资源合理分配。
- 消息追踪:在实际应用中,业务生产部门和消费部门之间可能会产生冲突。例如,生产者认为消息已成功发送,而消费者却未能接收到。这时,问题可能出在消息是否成功写入,还是消费者的程序未正确消费。为了解决这一问题,我们为企业加入了 消息追踪:提供消息的全链路追踪功能,帮助定位问题所在。
通过这些增强和改进,我们致力于为中国的客户提供更加全面、高效和安全的 Pulsar 服务,帮助他们在数字化转型的道路上加速前进。
社区贡献
作为消息流的 PaaS 平台,Pulsar 在企业中的运维管控和运行状态信息确实至关重要。为了满足这一需求,我们投入了大量精力在管控平台的开发上。我们的目标是提供一个全面的解决方案,帮助企业更有效地管理和监控他们的 Pulsar 集群。我们计划在不久的将来将管控平台的部分功能对外开放,以便用户能够利用这些工具来提升他们的运维实践。
目前,我们已经提供了一系列的社区资源来支持用户对 Pulsar 的了解和使用,再次也邀请大家关注下 Apache Pulsar 和 AscentStream 谙流科技两个公众号和同名视频号已经谙流科技的公司官网。这些资源为用户提供了丰富的信息和指导,帮助他们更好地利用 Pulsar 的功能。此外,我们还开放了一个免费的体验环境,允许用户在实际部署之前熟悉和了解 Pulsar 的各个方面。这个体验环境旨在降低用户尝试和学习 Pulsar 的门槛,我们鼓励大家前往注册试用,以便更直观地感受 Pulsar 的强大功能和灵活性。
我们期待通过这些努力,能够帮助企业更好地实施 Pulsar 服务,并在他们的数据流管理和实时消息传递中发挥关键作用。随着我们管控平台的进一步开放,我们相信 Pulsar 将为企业的运维管控带来更多的便利和效率。请大家拭目以待,我们将持续更新和改进我们的产品,以满足用户不断变化的需求。
结尾
- The End -