事件驱动架构详解(图文全面总结)

事件驱动架构详解(图文全面总结)

事件驱动架构在大型架构有广泛的应用,比如:消息队列就是典型应用,下面我就全面来详解事件驱动架构@mikechen

事件驱动架构

事件驱动架构:是一种软件架构设计模式,是基于事件的生成、传递、和处理来驱动应用程序架构模式。

如下图所示:

事件驱动架构详解(图文全面总结)

事件驱动架构:类似于架构层面的观察者模式,它通过事件的发布、和订阅,来实现系统各组件之间的解耦、和异步通信。

 

事件驱动架构实现原理

事件驱动架构,如下图所示:

事件驱动架构详解(图文全面总结)

主要包含4种组件:

1、事件

事件:是系统中发生的显著变化、或动作的记录,通常由事件生产者生成。

比如:用户登录事件、订单创建事件、数据更新事件……等,就是典型的事件。

 

2、事件生产者

事件生产者负责:生成并发布事件的组件、或服务。

比如:用户界面(UI)触发的用户操作事件,用户界面的就是事件生产者。

 

3、事件分发器

分发器(Event Mediator)是一种用于管理事件生产者和消费者之间交互的模式,负责协调和路由事件,确保事件能够正确地传递到适当的消费者。

支持事件的发布、和订阅,保障消息传递的可靠性、顺序性、和持久性。

 

4、事件消费者

事件消费者,主要订阅并处理事件的组件、或服务。

并且,接收事件并根据事件内容执行相应的业务逻辑,比如:日志记录系统、通知服务、数据处理…等。

整个流程大致如下:

  • 事件生成:事件生产者在某个动作,或状态变化时,生成事件;
  • 事件发布:事件生产者,将事件发布到事件总线或事件流;
  • 事件传递:事件总线通过消息队列、流处理平台等机制,将事件从生产者传递给消费者;
  • 事件订阅:事件消费者在启动时,向事件总线订阅感兴趣的事件类型;
  • 事件处理:事件消费者接收到事件后,执行相应的业务逻辑。

 

 

事件驱动架构应用

事件驱动架构,主要应用场景包括:解耦、消息队列…等场景。

事件驱动架构通过事件生产者、和事件消费者的松耦合设计,实现系统的解耦。

如下图所示:

事件驱动架构详解(图文全面总结)

事件生产者在生成事件后立即返回,不需要等待事件消费者处理完成,异步通信可以提高系统的响应速度和吞吐量。

基于事件驱动架构,还可以实现:消息队列传输机制,如下图所示:
事件驱动架构详解(图文全面总结)
消息队列充当了事件总线的角色,负责:存储和传输事件,确保事件能够按照一定的顺序、和规则被生产者和消费者进行处理。
总之,事件驱动架构通过事件生产者和消费者的松耦合设计,实现了系统的灵活性、可扩展性、和高性能。

作者简介

陈睿|mikechen,10年+大厂架构经验,BAT资深面试官,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

关注作者「mikechen」公众号,获取更多技术干货!

后台回复架构,即可获取《阿里架构师进阶专题全部合集》,后台回复面试即可获取《史上最全阿里Java面试题总结

评论交流
    暂无讨论,说说你的看法吧