什么是事件驱动架构 (Event-Driven Architecture)
事件驱动架构(EDA)
事件驱动架构 (Event-driven architecture) 是一种软件体系范例,可促进时间的产生, 检测, 使用和响应。对于事件驱动系统而言,事件的捕获、通信、处理和持久保留是解决方案的核心结构。这和传统的请求驱动模型有很大不同。
许多现代应用都采用了事件驱动设计。因为事件驱动本身是一种编程方法,而不是一种编程语言, 因此事件驱动应用可以用任何一种编程语言来创建。事件驱动架构可以最大程度减少耦合度,因此是现代化分布式应用架构的理想之选。
事件驱动架构采用松散耦合方式,因为事件发起者并不知道哪个事件使用者在监听事件,而且事件也不知道其所产生的后续结果。
什么是事件
事件是指系统硬件或软件的状态出现任何状态的重大改变。事件与事件通知不同,后者是指系统发送的消息或通知,用于告知系统的其他部分有相应的事件发生。例如,当消费者购买汽车时,汽车的状态从“待售”变为“已售”。汽车经销商的系统体系结构可以将此状态更改视为一个事件,该事件的发生可以被体系结构内的其他应用程序知道。从形式上看,产生,发布,传播,检测或使用的是 (通常是异步的) 消息,称为事件通知,而不是事件本身,它是触发消息发出的状态更改。事件不会传播,它们只会发生。但是,术语“事件”通常被用作代名词来表示通知消息本身,这可能会引起一些混乱。这是由于通常在消息驱动的体系结构之上设计事件驱动的体系结构,在这种通信模式下,这种通信模式要求输入之一是纯文本消息 (消息),以区分应如何处理每种通信。
而事件的来源可以是内部或外部输入。事件可以来自用户 (例如点击鼠标或按键)、外部源 (例如传感器输出) 或系统 (例如加载程序)。