事件驱动架构在大型架构有广泛的应用,比如:消息队列就是典型应用,下面我就全面来详解事件驱动架构@mikechen
事件驱动架构
事件驱动架构:是一种软件架构设计模式,是基于事件的生成、传递、和处理来驱动应用程序架构模式。
如下图所示:
事件驱动架构:类似于架构层面的观察者模式,它通过事件的发布、和订阅,来实现系统各组件之间的解耦、和异步通信。
事件驱动架构实现原理
事件驱动架构,如下图所示:
主要包含4种组件:
1、事件
事件:是系统中发生的显著变化、或动作的记录,通常由事件生产者生成。
比如:用户登录事件、订单创建事件、数据更新事件……等,就是典型的事件。
2、事件生产者
事件生产者负责:生成并发布事件的组件、或服务。
比如:用户界面(UI)触发的用户操作事件,用户界面的就是事件生产者。
3、事件分发器
分发器(Event Mediator)是一种用于管理事件生产者和消费者之间交互的模式,负责协调和路由事件,确保事件能够正确地传递到适当的消费者。
支持事件的发布、和订阅,保障消息传递的可靠性、顺序性、和持久性。
4、事件消费者
事件消费者,主要订阅并处理事件的组件、或服务。
并且,接收事件并根据事件内容执行相应的业务逻辑,比如:日志记录系统、通知服务、数据处理…等。
整个流程大致如下:
- 事件生成:事件生产者在某个动作,或状态变化时,生成事件;
- 事件发布:事件生产者,将事件发布到事件总线或事件流;
- 事件传递:事件总线通过消息队列、流处理平台等机制,将事件从生产者传递给消费者;
- 事件订阅:事件消费者在启动时,向事件总线订阅感兴趣的事件类型;
- 事件处理:事件消费者接收到事件后,执行相应的业务逻辑。
事件驱动架构应用
事件驱动架构,主要应用场景包括:解耦、消息队列…等场景。
事件驱动架构通过事件生产者、和事件消费者的松耦合设计,实现系统的解耦。
如下图所示:
事件生产者在生成事件后立即返回,不需要等待事件消费者处理完成,异步通信可以提高系统的响应速度和吞吐量。
作者简介
陈睿|mikechen,10年+大厂架构经验,BAT资深面试官,就职于阿里巴巴、淘宝、百度等一线互联网大厂。
关注作者「mikechen」公众号,获取更多技术干货!
后台回复【架构】,即可获取《阿里架构师进阶专题全部合集》,后台回复【面试】即可获取《史上最全阿里Java面试题总结》