Jump to section

什么是事件驱动架构?

复制 URL

事件驱动架构是一种用于设计应用的软件架构和模型。对于事件驱动系统而言,事件的捕获、通信、处理和持久保留是解决方案的核心结构。这和传统的请求驱动模型有很大不同。

许多现代应用设计都是由事件驱动的,例如必须实时利用客户数据的客户互动框架。事件驱动应用可以用任何一种编程语言来创建,因为事件驱动本身是一种编程方法,而不是一种编程语言。事件驱动架构可以最大程度减少耦合度,因此是现代化分布式应用架构的理想之选。

事件驱动架构采用松散耦合方式,因为事件发起者并不知道哪个事件使用者在监听事件,而且事件也不知道其所产生的后续结果。

事件是指系统硬件或软件的状态出现任何重大改变。事件与事件通知不同,后者是指系统发送的消息或通知,用于告知系统的其他部分有相应的事件发生。

而事件的来源可能是内部也可能是外部原因。事件可以来自用户(例如点击鼠标或按键)、外部源(例如传感器输出)或系统(例如加载程序)。

事件驱动架构由事件发起者和事件使用者组成。事件的发起者会检测或感知事件,并以消息的形式来表示事件。它并不知道事件的使用者或事件引起的结果。 

检测到事件后,系统会通过事件通道从事件发起者传输给事件使用者,而事件处理平台则会在该通道中以异步方式处理事件。事件发生时,需要通知事件使用者。他们可能会处理事件,也可能只是受事件的影响。 

事件处理平台将对事件做出正确响应,并将活动下发给相应的事件使用者。通过这种下发活动,我们就可以看到事件的结果。 

Apache Kafka 是一种分布式数据流平台,也是事件处理的常见之选。它可以实时进行事件流的发布、订阅、存储和处理。Apache Kafka 支持需要高吞吐量和可扩展性的用例,同时,通过最大程度减少某些应用中对数据共享的点对点集成需求,它可以将延迟降至毫秒级。 

除此之外,还有其他一些中间件事件管理器也可用作事件处理平台。

事件驱动架构可以基于发布/订阅模型或事件流模型。

发布/订阅模型

这是一种基于事件流订阅的消息传递基础架构。对于该模型而言,在事件发生或公布之后,系统会将相应的消息发送给需要通知的订阅用户。

事件流模型

借助事件流模型,事件将被写入日志。事件使用者无需订阅事件流。相反,它们可以从流的任何部分读取并随时加入流。 

事件流有几种不同的类型:

  • 事件流处理使用诸如 Apache Kafka 等数据流平台来提取事件并处理或转换事件流。事件流处理可用于检测事件流中有用的模式。
  • 简单事件处理是指事件立即在事件使用者中触发操作。
  • 复杂事件处理则需要事件使用者处理一系列事件以检测模式。

事件驱动架构可为企业提供一个灵活的系统,能够适应变化并实时做出决策。借助实时态势感知功能,您可以利用反映系统当前状态的所有可用数据,来做出业务决策(无论是人工还是自动)。 

事件在其事件源(如物联网(IoT)设备、应用和网络)发生时即被捕获,因此事件发起者和事件使用者可实时共享状态和响应信息。 

企业可以为自己的系统和应用添加事件驱动架构,以提高应用的可扩展性和响应能力,同时获取改善业务决策所需的数据和环境。

如今,以敏捷DevOps 方法开发的松散耦合的云原生应用架构和事件驱动架构需要一种同样敏捷且可扩展的集成方法。 

红帽敏捷集成的设计思路,就是打造一种连接资源的方法,结合集成技术、敏捷交付技术和云原生平台,来提高软件交付的速度和安全性。 

红帽通过提供集成平台和管理软件,使您可以跨混合云环境快速连接传统技术和微服务,同时还通过敏捷集成支持事件驱动架构。

继续阅读

文章

什么是集成?

想要知道什么是集成?了解何为集成、它的具体实现方式以及使用开源技术为什么有助于实现集成。

文章

什么是 Apache Kafka?

Apache Kafka 是一个分布式数据流处理平台,可以实时发布、订阅、存储和处理数据流。

文章

什么是 API?

应用编程接口(API)是一组用于构建和集成应用软件的定义和协议。

详细了解集成

产品

一套全面集成和消息传递技术

托管平台、应用和简化了混合云体验的数据服务,从而降低了运维成本和提供云原生应用的复杂性。

一整套产品、工具及组件,以用于开发和维护云原生应用。包括红帽 AMQ、红帽数据网格、红帽 JBoss® 企业应用平台、红帽 JBoss Web 服务器、OpenJDK 的红帽版、Quarkus 红帽版、一组云原生运行时、应用迁移工具包、单点登录和启动器服务。

一套智能自动化业务决策和流程的产品。包括红帽决策管理器、红帽流程自动化管理器和红帽应用运行时。

相关资源

电子书

创建敏捷的基础架构,打造灵活应变的企业

继续探索

培训

免费培训课程

红帽敏捷集成技术概述