事件总线是什么?

在事件驱动型架构 (EDA) 中,事件总线可促进事件发布方与事件订阅方之间有关事件数据的实时通信。

事件是什么?

事件就是系统状态的变化。事件是指已经发生、有可能触发其他情况的某种情况。电子商务交易、潜在客户的信息请求、数据泄露、设备故障、股价变动以及客户点击网站上的网址,都是事件的示例。对企业来说,尽快获得事件通知是提高效率、生产力和竞争力的关键。为实现这一目标,IT 架构师可以选择实施事件驱动型架构。

什么是事件驱动型架构?

事件驱动型架构 (EDA) 是一种软件和硬件设计模式,使系统能够快速检测、处理和响应各种事件。事件驱动型架构包括:

  • 事件发布方。事件发布方(或称事件生成方)是指事件发生后立即发出通知的系统。事件发布方可能是传输用户事件数据的用户界面、报告温度或运动变化的物联网设备、通告支付完成的 API、标识数据库记录变更的数据库,以及在任务、工作流或里程碑完成时生成事件的工作流引擎。
  • 事件总线。事件总线是一种中间件,作为事件发布方与使用方之间的中介。事件总线实时接收来自事件发布方的事件消息,并将数据提供给已订阅特定事件通道或事件类别的使用方。(消息队列、事件代理或事件流也可实现此功能。)
  • 事件使用方。事件使用方也称为事件订阅方或事件侦听方,会接收有关事件的信息,处理这些信息,并据此执行任务或操作。事件使用方的操作可能包括更新数据库、发送电子邮件、发出警报、提交订单、触发工作流程或生成新事件。

EDA 具有哪些优势?

事件驱动型架构和事件总线为企业 IT 系统提供了诸多优势。

EDA 系统将事件总线作为中介,可实现异步消息传递和应用程序松散耦合。发布事件的系统不需要知道将信息发送到何处,事件使用方也不需要知道事件消息的来源。相较于“请求/响应”架构,这提供了显著优势,后者需要一方应用程序向另一方请求信息,然后等待响应。

这种异步消息传递意味着发布方与使用方无需在响应返回前等待,而是可以处理信息或继续处理下一任务。事件生成方不需要知道事件使用方的情况,事件使用方也不需要了解事件生成方的情况。生成方只需表明发生了某事,而使用方则监听其关心的事件。这种松散耦合使系统在遭遇故障时的恢复能力更强。事件驱动型架构允许各种组件在需要时独立扩展,并使系统能以更快的速度和实时处理能力处理海量数据。

EDA 中的事件总线是如何工作的?

事件总线通常用于“发布-订阅”模式。在 EDA 的这种方法中,事件总线接收来自发布方的消息,根据需要转换信息,保持消息的有序性,将消息路由给订阅方进行使用,并在消息被使用后予以删除。

此流程的工作原理如下:

  • 为接收事件数据,需将事件使用方配置为从事件总线获取特定事件、事件类型或事件类别的信息。
  • 当事件总线收到来自事件发布方的消息时,会将数据路由至所有相关订阅方。企业还可将总线配置为将数据保留一段时间,让使用方能够按自身计划获取数据。

使用事件总线有什么好处?

事件总线使事件驱动型架构中的组件能够:

  • 在不存在依赖关系的前提下通信。添加或修改组件更容易,不会导致停机,也不会影响整个系统。
  • 横向扩展。事件总线架构支持同时部署同一组件的多个实例,从而实现并行处理以提升系统性能。
  • 处理异步通信。通过促进系统间的事件消息传递,事件总线简化了异步通信,使各组件能够独立触发行动。

事件总线有哪些应用场景?

事件总线可用于为各种应用程序提供事件消息。

  • 电商:电子商务平台依赖事件总线来传递诸如“商品已下单”、“付款已接收”或“包裹已发货”等事件。这些事件可能促使事件使用方触发诸如开具发票、发送确认邮件或订购更多库存等行动。
  • 微服务。事件总线与 EDA 的松散耦合性质是微服务之间通信的理想基础架构。
  • 物联网数据收集。事件总线可以接收来自物联网 (IoT) 设备和传感器的海量事件数据,以跟踪环境数据或交通和人员的移动。
  • 变更数据捕获。事件总线可促进有关数据库内变更的事件,例如当客户的 CRM 记录更新、新注册得到记录或库存物品缺货时。
  • 集成:EDA 与事件总线通过异步通信和系统间松耦合关系,促进多种技术的集成。
  • 实时数据处理。事件总线通过让使用方在事件发生时立即知晓,促进了实时数据库的应用。

常见的事件总线服务有哪些?

最热门的事件总线服务包括 Java 消息服务 (JMS)、Apache Kafka、RabbitMQ、Microsoft Azure Event Grid、Google Cloud Pub/Sub 以及 Amazon EventBridge 等 AWS 服务。

常见问题

事件总线通常用于促进实时通信。消息队列可存储消息,直至使用方准备好处理这些消息,从而实现服务与组件之间的异步通信。在更复杂的环境中,消息代理用于将消息从一种协议转换为另一种协议。

事件驱动型架构与事件总线是实现云计算无服务器模型的技术。无服务器架构使开发人员能够编写和部署代码,而无需为底层服务器和基础架构的管理和配置担心。事件总线可以是无服务器架构的重要组成部分,通过分发和处理事件消息来促进事件驱动的各个方面。

客户为什么选择 Akamai

Akamai 是一家致力于支持并保护在线商业活动的网络安全和云计算公司。我们卓越的安全解决方案、出色的威胁情报和全球运营团队可提供深度防御,保护各地的企业数据和应用程序。Akamai 的全栈云计算解决方案可在海外分布广泛的平台上提供高性能和经济实惠的服务。全球多家企业坚信,Akamai 能够提供卓越的可靠性、扩展性和专业技术,助其从容拓展业务。

探索 Akamai 的所有安全解决方案