本文介绍事件驱动架构EDA(Event Driven Architecture)的概念、优势、架构图和使用场景。
什么是事件驱动架构
事件驱动架构是一种松耦合、分布式的驱动架构,收集到某应用产生的事件后实时对事件采取必要的处理后路由至下游系统,无需等待系统响应。使用事件总线EventBridge可以构建各种简单或复杂的事件驱动架构,以标准化的CloudEvents 1.0协议连接云产品和应用、应用和应用等。
事件驱动架构体系结构具备以下三个能力:
- 事件收集:负责收集各种应用发生的事件,如新建订单,退换货订单等其他状态变更。
- 事件处理:对事件进行脱敏处理,并对事件进行初步的过滤和筛选。
- 事件路由:分析事件内容并将事件路由分发至下游产品。
优势
事件驱动架构具有以下优势:
- 降低耦合
降低事件生产者和订阅者的耦合性。事件生产者只需关注事件的发生,无需关注事件如何处理以及被分发给哪些订阅者。任何一个环节出现故障,不会影响其他业务正常运行。
- 异步执行
事件驱动架构适用于异步场景,即便是需求高峰期,收集各种来源的事件后保留在事件总线中,然后逐步分发传递事件,不会造成系统拥塞或资源过剩的情况。
- 可扩展性
事件驱动架构中路由和过滤能力支持划分服务,便于扩展和路由分发。
- 敏捷性
事件驱动架构支持与各种阿里云产品和应用集成,支持事件路由至任何系统服务,提供各种敏捷高效的部署方案。
事件驱动架构图
下图是人力资源服务系统的事件驱动架构示例,事件总线EventBridge收集人力资源服务系统产生的新员工入职事件,并对此事件进行路由和转发。这种体系结构可以提高站点的可扩展性,同时能更轻便地应对企业架构升级和系统拓展。
事件驱动架构扩展
下图是订单服务系统的事件驱动架构示例,该架构中事件总线EventBridge负责收集各种订单状态的事件后分发事件至目标端。