事件驱动架构 (EDA) 概述
事件驱动架构(EDA):
事件驱动架构是一种软件开发方法,其中软件的服务(操作)由事件触发。这就是为什么这种方法被称为事件驱动架构的原因。
那么,事件是什么意思呢?当用户在使用 EDA 方法构建的应用程序中执行操作时,会发生状态更改并生成称为事件的反应。
这里有些例子,
- 新用户填写表单并单击注册按钮,然后创建一个帐户,这是一个事件。
- 您单击 YouTube 频道上的订阅按钮并成为他们的订阅者。此订阅是一个事件。
- 输入消息后按下发送按钮,发送过程就是一个事件。
EDA 的组成部分:
EDA 有以下 4 个组件。
- 事件 -
用户的操作发生了状态变化。 - 服务/事件处理程序 –
服务通常对事件做出反应,并且反应可以是相应的过程或事件的生成。 - 事件循环 –
事件循环处理并确保事件和服务之间交互的顺畅流动。 - 事件流层 –
事件流层分为三层。他们是,事件生产者,事件消费者。事件通道/路由器。
EDA 是如何工作的?
当事件生产者检测到状态变化时,它会产生一个事件并将事件表示为一条消息。在这个阶段,生产者不知道事件消费者。它只是将事件发送到路由器。然后路由器处理事件并对事件执行所需的响应。之后,路由器通知事件消费者并将事件发送给消费者。事件的输出是事件消费的结果。
在这里,这些层是松散连接的。所以事件发送者不必知道事件消费者。而且消费者也不必知道事件的生产者。这种安排导致互操作性。
事件驱动架构的好处:
- 可扩展性——
以这种方法开发的应用程序的灵活性可以根据需要进行扩展和缩减。它还可以处理分析所需的大量数据。 - 互操作性——
EDA 的松散耦合层/服务支持即时访问大量不同的数据。当生产者向消费者发送事件时,即使消费者关闭,该事件也会在路由器上持续存在,然后消费者可以消费事件。它增强了应用程序的灵活性和健壮性。 - 降低运营成本——
在事件驱动架构中,一切都是为了响应事件而发生的。因此网络带宽消耗、CPU 利用率和加密都相对低于传统架构——请求驱动模型。 - 审计变得更容易——
事件通道或路由器是审核应用程序和定义准则的中间体。这些指南可以在生产者和消费者层设置数据访问控制和加密事件。 - 异步性——
事件驱动架构是异步的,没有阻塞。这意味着如果一个事件触发了一个服务并开始对该事件做出反应,那么这不会阻止其他服务运行或做出反应。这方面使事件驱动架构更加灵活和适应性强。此架构中的服务不连接,不相互依赖。所以这也有更高的容错性。
当我们选择事件驱动架构时:
- 并行处理 -
当需要多个系统运行以响应事件时,我们可以使用事件驱动架构。因此,相应的路由器会将事件推送到系统,并且每个系统可以针对不同的目的以不同的方式处理事件。 - 资源状态监控 –
当需要持续跟踪和监视资源时,事件驱动架构很有帮助,在这种情况下,EDA 可以监视和警告资源中的任何更改或更新。 - 异构系统——
如果系统在多个堆栈上运行,在这种情况下,事件驱动架构可用于在它们之间共享信息。事件路由器将负责系统之间的互操作性。
实现事件驱动架构非常有益,但实现起来非常复杂,主要是因为它的异步操作分布。除了该架构是灵活的,可以很容易地更换,它是高度响应的。有了正确的专业知识,任何人都可以从事件驱动架构中获益。