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

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
简介: 快速学习 EventBridge EDA (事件驱动):架构场景实践

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

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


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


3.EDA 架构实现解析

image.png

下面简单看一下 EDA 现在的实现架构的解析,会发现一个问题,它中间是有一个环节,然后这块是事件生产者,可能会有很多生产者,然后同时发布给 eventbus 或者叫 EDA 架构 broker 的底层,这个底层它可能需要具备几个能力。

第一个能力是事件捕获。即一定有一些能力可以把事件拉到 bus 层。这样之前谈的架构才会有可能性。

第二个能力是路由能力,即这个东西发送给你之后,你一定要向下去fill out 的能力。这个事件是要做最大的,可能要去针对下游端做一些更精细化或者是更精确的路由。这是路由能力,即传统的 fill out。

下面叫事件的处理能力,可以在上图看到,包括中间节点,包括转发逻辑,包括订单变更,包括状态变更,所有理论基础都是建立在 bus 一定是有处理能力的,即 bus 应该是挑出来哪个事件下发到哪个端。是真的去理解这个事件里面的东西到底是什么然后才能做下游端的转发。这是事件的处理能力,bus 一定要理解事件,并且可以把事件准确地交付给下游,这是现在 EDA 架构的实现解析。

每一块儿拆起来都非常复杂。尤其是最后一个事件处理。事件处理有很多 message,消息文件没法去满足的。因为非常定制化的这种录由方案,没法去满足事件处理的诉求。因为事件是无时不在的,没法去申明东西,这个事发送过来后可以去路由,这是事件和消息的另一个显著区别,现在其实很多 message 没有事情处理,过滤一些能力。这是 EDA 架构的解析。

3. EDA 架构优势/劣势

优势:

(1)

事件驱动架构是高度松高度分布式的构模型,事件的创建者(来源)只知道发生的事件,并不知道事件的处理方式,也关心有多少相关方订阅该事件。

(2)异步执行

EDA 架构是异步场景下最适合的执行工具,我们可以将需要事件保留在队列中,直到状态正常后执行。

(3)可扩展性

事件驱动架构可以通过路由&过滤能力快速划分服务,提供更便捷的扩展与路由分发。

(4)敏捷性

事件驱动架构可以通过将事件分发至任何地方,提供更敏捷高效的部署方案。

劣势:

(1)架构复杂

事件驱动架构复杂,路由节点多,系统结成复杂,功能要求多

(2)路由分发难

事件路由及分发难,灵活的事件路由需要依赖强大的实时计算能力,对整体分发系统要求较高。

(3)无法追踪

事件追踪是整个 EDA 架构保证, EDA 架构中往往很难追踪到事件处理状态,需要大量的定制化开发。

(4)可靠性差

事件驱动由于需要多系统集成,可靠性通常较差,且交付无法保障。

再看一下优劣,有优势就一定有劣势。首先来看优势,因为这讲主要是以 EDA 架构的优势为主。

(1)EDA 架构,第一个优势是松耦合。比如 A 端和 B 端,中间有中间节点把它们调节起来,这样它的 A 端 B 端的操作,B 端不用依赖 A 端服务的稳定性,A 端也不用依赖 B 端服务的稳定性,只要管好自己是不是可以正常发到 bus 上面。这就是松耦合,很简单。

(2)异步执行,其实 EDA 架构是义步执行下最合适的一个执行工具,所以异步执行也一定是 EDA 的优势,它可以将事件保留在队列中,直到下游正常再做执行,这和松耦合互相相辅相成。

(3)可扩展性,事件驱动里面最大的好处或者最大的应用性在于它可扩展。即这个事件发送到总线上不只有固定的端可以接受事件,而是后续的所有系统都可以依赖 bus 来做下游的处理。这是现在很多系统没法满足的一点,因为它得快速做事件的接收。

(4)敏捷性是它可以把事件下发给任何地方,然后提供更高效的部署方案或者系统对接,它最大的特点在于事件是可以打破系统孤岛的。系统孤岛怎么理解呢?在 HR 系统里面会发现很简单的一点,即 HR 系统可能要跟财务系统、仓储系统,甚至是可能要跟其它的 HR 的一些招聘系统做 match。那对接的时候会发现每一个对接、每一个小系统都是一个孤岛,可以通过事件把孤岛给打通掉,比如 HR 可以发送给任何部门,任何部门事件也可以下发给 HR 部门。所以这是显著的一个优势。

劣势也比较明显,从刚刚的架构分析,包括架构图,可以总结出几点。(1)第一点是 EDA 架构架构起来特别复杂,节点多,复杂多,系统集成复杂多,功能要求多。其实之前那张图已经讲得非常明确了,它确实是非常复杂,像蜘蛛网一样,有一个中间节点把各个蜘蛛网连起来。所以它的架构一定是非常复杂的。而且它的路由节点也非常多,路由起来也会比较困难,如果自建,这套系统基本上可以完成,但代价会非常高。

(2)路由分发难这个问题需要有一些计算能力,对整体分发的系统的稳定性要求会特别高。

(3)无法追踪是整个EDA 架构的老大难问题。它可能需要 trace ID。从源端到目标端都可以采到 trace ID,然后把 trace ID 连接起来做事件的跟踪,一般情况下,接入成本也是非常高的。

(4)其次,可靠性差,因为它要跟很多系统做集成,通常情况下,基本上如果只是开发系统,可能只开发一两个系统,但要对那么多系统集成,交付和可能都没保证。

这是优势和劣势,针对于这些劣势,阿里也推出了一款产品,现在开始讲产品做的一些东西,即 eventbridge。

5.EventBridge 组件支持

image.png

Eventbridge 其实很好的把前面的一些架构复杂,路由难,无法追踪,可靠性差等问题给解决掉。首先,它是现在阿里云整体的事件生态的集成工具,可以理解为阿里云现在所有的云产品事件的底层全都是依赖 eventbridge 完成的,比如 ACS 是依赖 eventbridge 这个中间节点完成的,所以会发现有很多阿里云的服务在 eventbridge 上面有接入。

其次它可以有效地解决追踪难的问题,即事件处理,可能会对事件过滤、转换、追踪、接入防控制流量,目标接入可能会有目标类型注册,目标管理。工具链会非常成熟,基本公司应用注册。比如解决上下游部门间的通信或业务对接问题,可以直接通过 skima 解决,注册一个 skima,然后直接把 skima 交付给下游系统。

其次,事件分析能力,把事件采集到之后,也可以对事件做一些分析,然后查询能力可以根据事件 ID 查询到事件的整体的状态变更是怎样的。事件仪表盘是直接针对于云产品的,有一个非常强劲的事件仪表盘可以把现在全部的云事件做一个压缩包,告诉大家这个账号下面发生了哪些事件,仪表盘后续也会考虑支持自建的系统的展示。这是 eventbridge 的整体介绍。

 

四、事件驱动架构实施

下面会讲到比较关键的点,即事件驱动架构的实施。

动手实践:配置 HR 新员工工作流

image.png

依然以配置 HR 新员工工作流程为例,在这里会给大家演示一下,在 eventbridge 控制台怎么可以把新员工工作流完整地串起来。当然大家也可以跟着操作,或者看一下它的一些主要分工,包括流程是怎样的。首先,发现 HR 系统有三块。第一块是事件源,即发送事件的一方。第二块是 eventbus,这是产品的主体。然后第三块是路由分发的一些目标端,一步一步配置。首先看一下事件源,得给大家详细讲一下。

1.动手实践:配置事件源

image.png

事件源可以分为三块,第一块叫 web hook 接入,web hook 接入适用于什么场景呢?可以给大家讲一下什么情况下会用到 web hook。首先,看 HR系统,通常情况下,会发现在实际应用中,会把一些 HR 系统用一些 saas 解决方案,会发现一搜 HR,有很多 HR 的系统或者 SAAS软件。

image.png

比如随便找一篇文章,大家可以看。

image.png

相关文章
|
7月前
|
消息中间件 Cloud Native 物联网
深度剖析 RocketMQ 5.0,事件驱动:云时代的事件驱动有啥不同?
本文技术理念的层面了解一下事件驱动的概念。RocketMQ 5.0 在面向云时代的事件驱动架构新推出的子产品 EventBridge,最后再结合几个具体的案例帮助大家了解云时代的事件驱动方案。
79164 6
|
5月前
|
消息中间件 运维 监控
|
5月前
|
消息中间件 监控 Cloud Native
阿里云云原生生态强调事件驱动架构(EDA),借助EventBridge和EventMesh实现微服务间的高效协作。
【7月更文挑战第3天】阿里云云原生生态强调事件驱动架构(EDA),借助EventBridge和EventMesh实现微服务间的高效协作。EDA提升系统弹性和可维护性,促进业务敏捷性。实施路径包括事件模型设计、集成阿里云服务、开发事件处理器和监控优化。通过阿里云服务,开发者能轻松构建响应式、可扩展的云原生应用,加速创新并驱动数字化转型。
100 0
|
消息中间件 存储 API
EDA - 初探事件驱动
EDA - 初探事件驱动
95 0
|
负载均衡 应用服务中间件 nginx
eda事件驱动架构
eda事件驱动架构
|
消息中间件 敏捷开发 存储
事件总线 + 函数计算构建云上最佳事件驱动架构应用
距离阿里云事件总线(EventBridge)和 Serverless 函数计算(Function Compute,FC)宣布全面深度集成已经过去一年。站在系统元数据互通,产品深度集成的肩膀上,这一年我们又走过了哪些历程?
事件总线 + 函数计算构建云上最佳事件驱动架构应用
|
消息中间件 敏捷开发 存储
事件总线 + 函数计算构建云上最佳事件驱动架构应用
今天的主题围绕事件总线+函数计算,构建云上最佳事件驱动架构应用。
196 0
事件总线 +  函数计算构建云上最佳事件驱动架构应用
|
消息中间件 存储 监控
【事件驱动架构】专家组:事件驱动的大规模架构
【事件驱动架构】专家组:事件驱动的大规模架构
|
消息中间件 存储 城市大脑
云原生事件驱动引擎(RocketMQ-EventBridge)应用场景与技术解析
RocketMQ 给人最大的印象一直是一个消息引擎。那什么是事件驱动引擎?为什么我们这次要推出事件驱动引擎这个产品?他有哪些应用场景,以及对应的技术方案是什么?本文我们就一起来看下。
952 0
云原生事件驱动引擎(RocketMQ-EventBridge)应用场景与技术解析
|
消息中间件 机器学习/深度学习 Kubernetes
EventBridge 事件总线及 EDA 架构解析
EventBridge 是事件驱动的具体落地产品,也是 EDA 的最佳实践方式。
435 0
EventBridge 事件总线及 EDA  架构解析