作为一个经典架构模式,在全行业数字化转型的时代,事件驱动架构(EDA)应用范围扩大,成为 Gartner 年度十大技术趋势。在新型的数字化商业解决方案里,会有 60% 采纳 EDA 架构。那么为什么事件驱动架构在云时代为什么会再次流行呢?
在谈及今天的话题之前,我们先来了解一下什么是事件驱动架构(EDA),也只有了解了什么是事件驱动架构(EDA),也才能更好的理解为什么事件驱动作为一个经典的架构模式,竟然会在云时代背景下再次流行起来的缘由。
什么是事件驱动架构(EDA)
事件驱动架构(Event Driven Architecture,EDA)是一种基于事件的软件架构模式,在事件驱动架构中,所有的信息都以事件的形式进行表达和处理。一个事件是一个抽象的、有意义的数据集,这些数据集可以被其他的服务接收分析并做出对应的响应。事件驱动架构是一种松耦合、分布式的驱动架构,收集到某应用产生的事件后实时对事件采取必要的处理后路由至下游系统,无需等待系统响应。
比如一个简单的人力资源服务系统的事件驱动架构示例,事件总线EventBridge收集人力资源服务系统产生的新员工入职事件,并对此事件进行路由和转发。这种体系结构可以提高站点的可扩展性,同时能更轻便地应对企业架构升级和系统拓展。
事件驱动架构与消息
看了事件驱动架构的描述,是不是感觉和消息比较相似,确实,消息在用于微服务架构的异步解耦时,确实比较相似。但是消息的应用场景往往更倾向于一个企业内部之间各部门应用系统的数据流动,消息的生产者和消费者往往都约定好具体的消息格式。而事件的事件源,也就是事件生产者往往并不知道事件将会被谁消费,不关心事件的处理结果。这样相比较来看的话,事件相对于消息,显得更加的松耦合。
再度流行的事件驱动架构
现下时代,随着业务的不断复杂,单体架构、消息架构、微服务架构在短时间内可以应对,但是长久来看,事件驱动架构更具备优势。
从松耦合来看:事件驱动架构降低事件生产者和订阅者的耦合性。事件生产者只需关注事件的发生,无需关注事件如何处理以及被分发给哪些订阅者。任何一个环节出现故障,不会影响其他业务正常运行。
从执行情况来看:事件驱动架构适用于异步场景,即便是需求高峰期,收集各种来源的事件后保留在事件总线中,然后逐步分发传递事件,不会造成系统拥塞或资源过剩的情况。
从可拓展性来看:事件驱动架构中路由和过滤能力支持划分服务,便于扩展和路由分发。
基于以上分析,事件驱动架构在现阶段数据量飞速增长,应用体系不断扩大,服务之间通信日益复杂的情况下,确实很有可作为空间。目前阿里云官方产品事件总线EventBridge公测期间免费使用,刚兴趣的小伙伴可以提前去体验这款云时代背景下再度流行的事件驱动架构,参考文档:操作指南