EventBridge EDA (事件驱动):架构场景实践|学习笔记(四)

本文涉及的产品
函数计算FC,每月15万CU 3个月
简介: 快速学习 EventBridge EDA (事件驱动):架构场景实践

开发者学堂课程事件总线 EventBridge 生态集成课程 EventBridge EDA (事件驱动):架构场景实践学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/1235/detail/18407


EventBridge EDA (事件驱动):架构场景实践


比如北森、SAP,还有国内的用友、金蝶都在做 HR 系统。HR 系统虽然用起来很方便,但是可能也会遇到一些集成问题,web hook 就是针对这种 saas 场景来去做的。刷新一下页面,看到已经登录控制台了。

image.png

然后点击事件总线。

image.png

然后创建一个事件,这个事件会有两块,第一块云服务事件,不用管,这是内部内置的总线,专门给云服务去提供的,假如要做自建系统,直接点自定义总线就可以,自定义总线先去选一个名称,比如 test123321。然后点下一步,把后面的直接跳过,这样进展会快点。这里已经创建了一个叫自定义总线的主体。

image.png

事件源在哪添加呢?其实很简单,事件源写的也比较清楚。发现有很多预置项,看一下第一个要配置什么,要配置 web hook,添加睡眠,比如这里是 test web hook,选 HTTP,还有 HTPS 触发的项,这里依然添加自定义事件源,然后选择事件提供方,选择方式,安全配置选择无需配置,点确定。这样现在一个 web hook 地址就已经生成了,可以直接点进来,然后会看到一个叫公网请求 URL 的东西,可以直接去 web hook 访问,这里已经发送成功了。

image.png

这样可以直接拿着ID,在事件追踪里面找事件,看一下投递到 bus 上面。一查会发现,这个 ID 已经投递过了。由于没有绘制规则,所以它的目标是空的,事件详情就是刚刚请求。因为请求里面什么都没有加,所以它是空的,然后可以尝试去传一些字段,比如使用 postman 去新加一个,然后把 URL 复制过来。在 postman 里面填一下地址。这里填一下 Test123,点发送。它依然会反馈过一个 event ID,然后把这个 event ID 复制一下,追踪看一下效果。会发现这个 web hook 也接收成功了,它的事件类型看一下。Test 123 其实就是刚刚往往 header 字段里面塞的 value,所以也可以去通过 web hook 这种方式把一些值传进来。那这就是 web hook 接入。当然没有实际把 web hook 流程操作下来,主要也是因为这边没有类似 HR 系统账号,大家也可以去实际实践一下,相信应该是可以完全去做 match 的,因为之前也有测过比如语句,钉钉等一些 web hook 的方案。

下面还有个方式叫 plut events。Plutevents 可以自己把事件发到 eventbridge 上,目前来讲,也支持了很多 SDK,直接去看 python。把文档打开,首先点开事件,这块有 events,这里会介绍现在 plutevents 如何发送一些事件,这里有 eventbridge SDK,拿这个 case 举例,这样也会比较直观一些,这是之前测试的一个脚本,如果大家想用,建议大家去写脚本或自己需要的一些值,然后去做测试,把 source 改一下,因为没有这个值,所以需要创建source,之前发送了一千条,这里改成一条,初始化参数,这里面的值一定要跟source match 上,这里写test source,然后自定义应用,点击确定,把值复制一下,把 bus 的一些名称改一下,现在是 test123321,把名称改一下,这里有 secret key 的 ask 的数据,自行去做一些配置,看一下 region 信息,这里发现接入点是 region,在接入点里面把这个值复制下来,把 region 改成青岛,看一下位置,直接运行 Python,发现事件已经发送成功了,会有event ID,看看 event ID 有没有发送过来就可以了,发现已经发送成功了,事件详情里面会发现这里有一个 data 是 test123,这是刚刚写的event data 的字段,这样就完成了整体的发送,这是第二种方式发送,叫plutevents。

第三种叫做 Queue,Queue很简单。直接从 Queue 里拉一个消息,比如之前会有一个消息列,点一个 massage,这里有massage服务。这里在 message 控制台里发一个消息,可以在这里面直接查。因为这块不准推送,所以它没有办法及时感知到。稍等一下,可以看到其实 Queue 已经出现了。这是刚刚在Queue里面发的消息,即 message data:test queue,是刚刚入的值。这样现在的所有的源端配置都已经完成了。第一个是 Test web hook,即 test web hook 的方案。第二个是直接通过 plutevents 方式,类似于sdk 的方式,然后把它跑起来。第三个是 Queue 的方式。这样已经完成了所有的事件发送操作。

2.动手实践:配置事件目标——直接触发

下面配置一下目标,

image.png

刚刚已经配完了事件源,然后可以尝试配置目标。看一下这些消息,然后去fill out。首先还是点事件规则,这是新的,所以没有创建过任何规则,首先测一下钉钉,钉钉可能会更简单一点,也会更直观,这里的模式其实是过滤模型,这个模型支持了很多模式,比如指定值匹配,前缀匹配,指定值只要匹配事件的某个字段是什么值,然后做触发。前缀匹配是只要是这个前缀的都可以做触发,类些这种还有很多,比如后缀等其他的一些东西,比如 IP 地址,数组等,大家可以直接在文档里面去看。现在希望全量的事件都触发到下游,所以这个事件模型可以为空,那空对象就会匹全部模式,直接点下一步,然后钉钉可以直接配一个钉钉的告警的机器人,把它做一些演示。

首先直接打开钉钉,去找测试的账号,找一个测试群,这样会更简单一点。这里有一个新建的测试群,然后在这里找群管理,会有一个机器人管理,然后新建一个机器人,点添加。

image.png

这就是 test robot 测试机器人,点加签,点签名验证。把签名 copy一下,点完成。会给另一个地址,先把这个签名填进去,签名即密钥,然后钉钉地址即 web hook 地址,点进去,填进来,这样就可以完成推送逻辑的配置,这样有事件会直接发送到这个群里面。

下面还要做几个流程,第一个流程是配置变量,配置变量可以直接把事件的某一个部分映射到现有的载体里面,所以可以直接先去定义现在的模式,比如在模板里面,要定义一个东西,在这里申明一个变量,这个变量可能是消息的内容,比如写个最简单的,直接写 data,Data 里是 dollar.data,这样它就只取 data 值。然后目标要把它引用过来,引用方式在文档写的也比较清楚,可以直接看文档,在文档会发现它是 dollar 一个括号的形式,直接把模式给粘过来,这个 dollar 是之前声明的变量即 data,点创建。这样就可以创建钉钉的一个目标,然后目标的事件模式是空的,它不需要去路由任何东西,其次,它的目标配置,刚刚做一些钉钉的配置,比如地址、密钥,都直接在钉钉侧做后续。现在可以发送一下。点击确定,看到事件其实被发送了。在钉钉上可以看到测试事件是 eventbridge。这样完成了现在的整体的发送流程。

下面看一下,PPT上还有几块。第一块是发送到Queue,第二块是提交系统变更,然后发送到Queue,其实只要在基础上,直接再去建立一个规则,规则是Queue。同样,模式为空,这里的 Queue可以直接拿 MNS 来测试一下,依然测试test Queue。创建,这样会看到已经创建了一个规则,即 MNS。然后再去创建一下,比如要做数据库变更,这里名称可以随意填,然后下一步,这块有配置数据库的一些能力,只要选择数据库的一些实例地址,并且配置入库的 circle 就可以了,这里就不给大家做详细演示了。

现在的主体内容都完成了,包括发送端,有三端发送,最后一趴其实可以有间接触发的能力。间接触发即调 FC,FC怎么调呢?相当于创建一个规则,这就是 FC target。然后选函数计算,函数计算下面可能会有很多,比如 OSS,选一个具体函数,点确定,这样它的事件也同时被函数计算消费,被函数消费的主要目的是可以在函数里面写一些代码,比如可以把事件接收下来,然后做更多下游端的处理,比如要做一些内部鉴权或者其他操作都是可以的,相当于提供了一个更灵活的方案,即一个编写代码的方案,然后把这个事件接收,并且再去通过这样的事件做触发。

本次主题讲了很多东西,包括 EDA 架构,EDA 架构如何在 eventbridge 控制台上操作,包括怎么去做转换路由以及如何查询追踪状态都有讲到。

总结:第一讲讲了整体的事件,包括事件驱动架构以及解决了一个问题:EDA 是什么。

第二点讲如何在生产业务中把事件驱动架构的设计落地。

然后第三点是在控制台里面,详细地把 flow 配置一下,了解了在这种场景里面 eventbridge 怎么配置,怎么触发。

目前这门课程还算比较完整,希望能给大家带来一些关于 eventbridge 和 EDA 的整体架构方案,还有整体介绍给大家一个宏观的概念,后面用 eventbridge 也会推出一系列的直播课程,帮助大家把 EDA,包括 eventbridge 这个产品了解更深,也欢迎大家关注后续的一些课程。

相关实践学习
【AI破次元壁合照】少年白马醉春风,函数计算一键部署AI绘画平台
本次实验基于阿里云函数计算产品能力开发AI绘画平台,可让您实现“破次元壁”与角色合照,为角色换背景效果,用AI绘图技术绘出属于自己的少年江湖。
从 0 入门函数计算
在函数计算的架构中,开发者只需要编写业务代码,并监控业务运行情况就可以了。这将开发者从繁重的运维工作中解放出来,将精力投入到更有意义的开发任务上。
相关文章
|
2天前
|
消息中间件 人工智能 运维
事件驱动重塑 AI 数据链路:阿里云 EventBridge 发布 AI ETL 新范式
“一个简单的数据集成任务,开始时总是轻松愉快的,但随着业务扩展,数据源越来越多,格式越来越乱,整个数据链路就会变得一团糟。”陈涛在演讲中指出了当前 AI 数据处理的普遍困境。扩展难、运维难、稳定性差,这三大挑战已成为制约 AI 应用创新和落地的关键瓶颈。针对这些痛点,在2025云栖大会期间,阿里云重磅发布了事件驱动 AI ETL 新范式,其核心产品 EventBridge 通过深度集成 AI 能力,为开发者提供了一套革命性的解决方案,旨在彻底改变 AI 时代的数据准备与处理方式。
|
4月前
|
关系型数据库 MySQL 分布式数据库
Super MySQL|揭秘PolarDB全异步执行架构,高并发场景性能利器
阿里云瑶池旗下的云原生数据库PolarDB MySQL版设计了基于协程的全异步执行架构,实现鉴权、事务提交、锁等待等核心逻辑的异步化执行,这是业界首个真正意义上实现全异步执行架构的MySQL数据库产品,显著提升了PolarDB MySQL的高并发处理能力,其中通用写入性能提升超过70%,长尾延迟降低60%以上。
|
4月前
|
消息中间件 存储 大数据
阿里云消息队列 Kafka 架构及典型应用场景
阿里云消息队列 Kafka 是一款基于 Apache Kafka 的分布式消息中间件,支持消息发布与订阅模型,满足微服务解耦、大数据处理及实时流数据分析需求。其通过存算分离架构优化成本与性能,提供基础版、标准版和专业版三种 Serverless 版本,分别适用于不同业务场景,最高 SLA 达 99.99%。阿里云 Kafka 还具备弹性扩容、多可用区部署、冷热数据缓存隔离等特性,并支持与 Flink、MaxCompute 等生态工具无缝集成,广泛应用于用户行为分析、数据入库等场景,显著提升数据处理效率与实时性。
|
6月前
|
存储 NoSQL Redis
阿里面试:Redis 为啥那么快?怎么实现的100W并发?说出了6大架构,面试官跪地: 纯内存 + 尖端结构 + 无锁架构 + EDA架构 + 异步日志 + 集群架构
阿里面试:Redis 为啥那么快?怎么实现的100W并发?说出了6大架构,面试官跪地: 纯内存 + 尖端结构 + 无锁架构 + EDA架构 + 异步日志 + 集群架构
阿里面试:Redis 为啥那么快?怎么实现的100W并发?说出了6大架构,面试官跪地: 纯内存 + 尖端结构 +  无锁架构 +  EDA架构  + 异步日志 + 集群架构
|
9月前
|
人工智能 运维 监控
云卓越架构:企业稳定性架构体系和AI业务场景探秘
本次分享由阿里云智能集团公共云技术服务部上海零售技术服务高级经理路志华主讲,主题为“云卓越架构:企业稳定性架构体系和AI业务场景探秘”。内容涵盖四个部分:1) 稳定性架构设计,强调高可用、可扩展性、安全性和可维护性;2) 稳定性保障体系和应急体系的建立,确保快速响应和恢复;3) 重大活动时的稳定重宝策略,如大促或新业务上线;4) AI在企业中的应用场景,包括智能编码、知识库问答、创意广告生成等。通过这些内容,帮助企业在云计算环境中构建更加稳定和高效的架构,并探索AI技术带来的创新机会。
|
11月前
|
NoSQL Java 数据处理
基于Redis海量数据场景分布式ID架构实践
【11月更文挑战第30天】在现代分布式系统中,生成全局唯一的ID是一个常见且重要的需求。在微服务架构中,各个服务可能需要生成唯一标识符,如用户ID、订单ID等。传统的自增ID已经无法满足在集群环境下保持唯一性的要求,而分布式ID解决方案能够确保即使在多个实例间也能生成全局唯一的标识符。本文将深入探讨如何利用Redis实现分布式ID生成,并通过Java语言展示多个示例,同时分析每个实践方案的优缺点。
354 8
|
12月前
|
SQL 存储 分布式计算
大数据-157 Apache Kylin 背景 历程 特点 场景 架构 组件 详解
大数据-157 Apache Kylin 背景 历程 特点 场景 架构 组件 详解
162 9
|
11月前
|
边缘计算 监控 自动驾驶
揭秘云计算中的边缘计算:架构、优势及应用场景
揭秘云计算中的边缘计算:架构、优势及应用场景
|
运维 Cloud Native 容灾
核心系统转型问题之单元化架构对于自研可控场景该如何支持
核心系统转型问题之单元化架构对于自研可控场景该如何支持
128 1
|
人工智能 Serverless API
Serverless 架构实现弹幕场景问题之用SAT进行双主键的插入操作如何解决
Serverless 架构实现弹幕场景问题之用SAT进行双主键的插入操作如何解决
88 0