一、事件驱动架构理论基础
事件驱动架构(Event - Driven Architecture,EDA)是一种软件设计范式,事件驱动的体系结构由生成事件流、侦听这些事件的事件使用者以及将事件从生成者传输到使用者的事件通道组成。
在事件驱动架构中,系统的行为由事件触发。事件可几乎实时发送,因此使用者可在事件发生时立即做出响应。 生成者脱离使用者,即生成者不知道哪个使用者正在倾听。 使用者之间也能彼此脱离,且每个使用者都能看到所有事件。
二、核心组件
事件源(Event Source)
产生事件的地方,可以是用户界面、传感器、业务系统等。例如,在一个电商系统中,用户提交订单这个操作就是一个事件源,会产生 “订单已提交” 事件。
事件队列(event queue)
接收事件的容器。
分发器(event mediator)
将不同的事件分发到不同的业务逻辑单元。
事件通道(Event Channel)
负责事件的传输和分发,也被称为消息队列或事件总线。它可以实现事件的异步处理和组件之间的解耦。常见的消息队列有 RabbitMQ、Kafka 等。
事件处理器(Event Handler)
监听事件通道中的事件,并根据事件的类型和内容执行相应的操作。例如,当接收到 “订单已提交” 事件后,事件处理器可以进行库存检查、生成物流单号等操作。