使用 Apache Pulsar 构建弹性可扩展的事件驱动应用

本视频来自 2024 Apache Pulsar 欧洲峰会,由 David Kjerrumgaard, 《Pulsar in Action》书作者给大家带来的《使用 Apache Pulsar 构建弹性可扩展的事件驱动应用》分享。

嘉宾|David Kjerrumgaard,Apache Pulsar Committer,《Pulsar in Action》书作者

编辑|futeng

快速预览

大家好,我是 David Kermgaard,Stream Native 的开发者布道师。欢迎来到我的演讲,今天我们将探讨如何使用 Apache Pulsar 构建可扩展和弹性的事件驱动应用。

事件驱动架构的定义

首先,我们来定义一下什么是事件驱动架构(EDA)。这种架构设计用于实现事件生产者之间的异步通信。事件生产者可以是真实世界中的任何事物,比如用户登录网页、卡车在路线上的移动,或者是库存管理系统中的扫描事件。这些事件被触发后,会异步发布到消息代理,然后感兴趣的事件消费者可以自动、异步地消费这些事件,并相应地做出反应。

Apache Pulsar 的优势

Apache Pulsar 是一个理想的事件驱动架构中的消息代理。它具有水平可扩展性、速度快,并支持事件驱动架构所需的消息语义,如队列、工作队列、主题和订阅。Pulsar 还提供了 Pulsar Functions,这是一个无服务器、轻量级的计算框架,允许你针对事件运行代码片段。

Pulsar Functions 的编程模型

Pulsar Functions 提供了一个反应式的编程模型。函数可以订阅一个或多个主题,每当收到消息时,Pulsar Function 运行时就会执行你提交的代码,并可选地将结果输出到另一个主题。这种模型非常适合事件驱动的架构风格,简单易用。

Function Mesh 的作用

Function Mesh 允许你将多个 Pulsar Functions 编排在一起,形成单一的复杂流处理作业。它利用 Kubernetes 的调度能力自动管理和扩展 Pulsar Functions 和连接器。

弹性与可扩展性的实现

为了实现真正的弹性和可扩展性,我们不仅需要 Pulsar 和 Pulsar Functions,还需要 Kubernetes 操作器和 Function Mesh 来自动处理所有特性。这样,你可以专注于编程逻辑,而不必担心系统的弹性和可扩展性。

Kubernetes 的自动扩展

Kubernetes 提供了两种自动扩展的方式:水平扩展(增加副本数量)和垂直扩展(增加内存或 CPU)。通过配置 Kubernetes 的自动扩展器(如 HPA 或 VPA),你的应用程序可以根据资源使用情况自动调整。

演示:自动扩展在行动

在演讲的最后部分,我进行了一个实时演示,展示了如何配置和使用 Pulsar Functions 的自动扩展功能。通过模拟高 CPU 使用率的场景,我们观察到 Kubernetes 环境自动启动了新的 Pod,以应对计算需求的增加。

感谢大家的参与,希望你们能从这次演讲中获得有价值的信息。如果你们对源代码感兴趣,可以访问我的 GitHub 仓库进行尝试。再次感谢,祝大家会议愉快!

关注 【AscentStream谙流科技】视频号,第一时间获取更新。

相关推荐
脑电信号要分类1 天前
将多张图片拼接成一个pdf文件输出
pdf·c#·apache
不是书本的小明1 天前
Apache vs Nginx vs Tomcat 核心区别与优化
nginx·tomcat·apache
Suchadar3 天前
源码编译Apache
apache
一字白首3 天前
小程序组件化进阶:从复用到通信的完整指南DAY04
前端·小程序·apache
专注_每天进步一点点4 天前
mysql-connector-j(8.0 及以上版本,包括你使用的 8.3.0)并非采用 GPL 许可证,因此你在项目中引入该依赖时,不需要遵循 GPL 的开源要求(比如开源你的整个项目)
数据库·mysql·apache
不爱学英文的码字机器4 天前
Apache RocketMQ+cpolar 让消息服务全网可达
apache·rocketmq
鸽芷咕4 天前
海量时序数据选型指南:从大数据架构演进看 Apache IoTDB 的崛起
大数据·数据库·架构·apache
D愿你归来仍是少年5 天前
Apache Spark 第 3 章:核心概念 RDD / DataFrame
大数据·spark·apache
D愿你归来仍是少年5 天前
Apache Spark 第 4 章:Spark 整体架构
spark·apache
D愿你归来仍是少年5 天前
Apache Flink 算子(Operator)深度解析
大数据·flink·apache