深入拆解消息队列 47 讲
许文强
前腾讯云 Kafka 技术负责人
5385 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 50 讲
深入拆解消息队列 47 讲
15
15
1.0x
00:00/00:00
登录|注册

39|Serverless:如何基于MQ和Serverless设计事件驱动架构?

你好,我是文强。
上节课我们讲了如何基于 Serverless 架构实现流式数据处理。这节课我们来看一下如何基于消息队列和 Serverless 来设计实现事件驱动架构(EDA)。
想必你对事件驱动架构这个词会有点陌生,为了让你更好地理解它,我们先来回顾两个知识点。
第 08 讲讲消费者的时候,我们讲过消费数据时 Push 模型的实时性是最高的。
第 38 讲讲到 Serverless Function 的数据源事件时,事件源数据的触发方式有一种是事件触发。
从技术上来看,这两个知识点都是事件驱动架构的一种实现。接下来我们就详细了解一下什么是事件驱动架构,它有什么用,以及它的架构和底层运行原理。

什么是事件驱动架构

事件驱动架构,英文是 Event Driven Architecture,简称 EDA。我们通过下面这张图来认识一下它。
如上图所示,这是从事件驱动架构抽象出来的架构图,图中包含了事件源事件处理平台(事件总线)事件目标三个部分。
事件源就是数据源,一个事件可以理解为一个数据。比如业务定义了一个事件,然后投递到了事件处理中心,本质上就是投递了一个数据。
事件处理平台(在公有云产品化后一般叫做事件总线)负责接收和持久化存储不同事件源的事件,然后根据设置好的事件规则触发执行不同的业务逻辑。
事件目标包含事件目标和目标调用两部分。事件目标一般是实体,比如 HTTP/TCP Server、某个存储引擎等等。目标调用是一个动作,比如 HTTP API 调用、调用引擎客户端 SDK 写入数据等等。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文深入探讨了基于消息队列和 Serverless 架构设计实现事件驱动架构(EDA)的方法。通过介绍事件驱动架构的优势和问题,以及 CNCF Serverless 工作组提出的 CloudEvents 概念,文章阐述了如何利用 CloudEvents 规范简化事件发布、订阅和处理流程。此外,还探讨了事件驱动架构在自动化运维、应用连接和集成、商品订单中台等典型应用场景中的价值。文章还详细介绍了构建事件处理平台的接入层、缓存层、运行层和分发层四个部分。最后,文章强调了事件处理平台需要保证事件数据不丢失,并讨论了事件数据的一致性问题。 事件驱动架构(EDA)是本文的核心主题,它涉及到事件总线的设计和实现,以及事件规则的配置和业务逻辑的触发。CloudEvents 规范的介绍为简化事件处理流程提供了重要参考,而事件驱动架构在自动化运维、数据集成、业务数据中台等场景中的广泛应用则展现了其实际价值。技术细节方面,接入层、缓存层、运行层和分发层的设计和实现是事件处理平台的关键组成部分,需要考虑诸多细节问题,如数据格式规范、数据源集成、集群扩缩容、运行时规则设计等。 总的来说,本文全面阐述了事件驱动架构的概念、CloudEvents 的作用以及事件驱动架构在实际业务中的应用和构建方法,为读者提供了深入了解和应用事件驱动架构的重要参考资料。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《深入拆解消息队列 47 讲》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(1)

  • 最新
  • 精选
  • Geek_cb8c43
    其中时间处理平台是架构的核心,它由接入层、缓存层、运行层、分发层四部分组成。 --总结这里是不是写错了,时间处理平台->事件处理平台
    2023-12-10归属地:上海
收起评论
显示
设置
留言
1
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部