阿里云 EventBridge 事件驱动架构实践
发布网友
发布时间:2024-10-08 12:35
我来回答
共1个回答
热心网友
时间:2024-11-18 13:49
我是 RocketMQ 的 PMC member 周新宇,目前负责阿里云 RocketMQ 以及 EventBridge 的产品研发。今天我的分享主要包括以下几部分:消息与事件、微服务与事件驱动架构。
消息与事件的区别:RocketMQ 中的消息是一个泛化的概念,内容体为 Byte 数组,没有定义,非常通用。而事件则是更加具象化的,通常有一个 Schema 来描述事件有哪些字段,代表了某个事情的发生或状态变化。
从用途来讲,消息用于微服务的异步解耦架构,而事件驱动则更加解耦。事件发送方并不知道事件将被投递到何处,也没有预期如何处理,因此基于事件的架构更加解耦。
微服务架构与 EDA 架构的区别:微服务架构将单体应用拆分成多个微服务,通过 RPC 进行组织和串联。纯粹的 RPC 架构存在很多问题,比如业务逻辑耦合,导致微服务间容量不对等,可能引发雪崩效应。引入消息队列进行异步解耦后,架构接近事件驱动架构,但消息订阅者基于消息中间件厂商提供的 SDK 进行消息处理,业务需要进行改造,并受厂商技术栈绑定。事件驱动架构中的订阅者属于泛化订阅,不要求订阅方基于何种技术栈开发,更加解耦,改造成本最低。
阿里云 EventBridge:事件驱动架构实践。EventBridge 遵循 CloudEvents 规范,旨在利用统一的规范格式来声明事件通信,提高系统间互操作性。EventBridge 集成了 80 多种云产品,约 800 多种事件类型,打通消息生态,并与 ISV 生态、事件驱动生态相互集成。
EventBridge 核心价值包括:统一事件枢纽、事件驱动引擎、开放与集成。EventBridge 有四大部分:事件源、事件总线、规则、事件目标。事件规则具有事件轻量级处理能力,支持复杂的事件模式过滤和转换器能力。
EventBridge 架构优点:减少用户开发成本、原生 CloudEvents 支持、事件 Schema 支持、全球事件任意互通。
Serverless 加事件驱动是新的研发方式,EventBridge 驱动 Serverless 运行时,连接后端服务。Serverless EDA 架构开发模式:将业务逻辑转换为函数资源,EventBridge 通过事件驱动函数,将函数编排成具体应用。
事件驱动的未来展望:做好连接,集成云内、跨云架构,集成开源生态,连接传统 IDC 计算能力、边缘计算能力等生态。