使用 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谙流科技】视频号,第一时间获取更新。

相关推荐
运维全栈笔记2 天前
Linux安装配置Tomcat保姆级教程:从部署到性能调优
linux·服务器·中间件·tomcat·apache·web
❀͜͡傀儡师3 天前
Apache Doris 4.0.0 存算分离手动部署指南
apache·doris 4.0
DolphinScheduler社区6 天前
DolphinScheduler 3.3.2 如何调用 DataX 3.0 + SeaTunnel 2.3.12?附 Demo演示!
java·spark·apache·海豚调度·大数据工作流调度
YaBingSec6 天前
玄机网络安全靶场:Apache HTTPD 解析漏洞(CVE-2017-15715)WP
java·笔记·安全·web安全·php·apache
SuperherRo7 天前
服务攻防-中间件安全&Apache&Tomcat&Jetty&Weblogic&AJP协议&反序列化&CVE漏洞
中间件·tomcat·apache·jetty·weblogic
回忆2012初秋7 天前
时序库.net平台下的推荐 SonnetDB,一文分析清除他与Apache IoTDB的区同
apache·iotdb
家有娇妻张兔兔8 天前
Apache POI 导出 Word 踩坑实录:Word 分栏为什么做不好左右平铺
c#·word·apache·poi·分栏
HashData酷克数据8 天前
官宣:Apache Cloudberry (Incubating) 2.1.0 正式发布!
apache
weixin_394758038 天前
直播间小程序码生成问题修复代码清单
android·小程序·apache
YaBingSec9 天前
玄机靶场—Apache-druid(CVE-2021-25646) WP
java·开发语言·笔记·安全·php·apache