什么是事件订阅方?

事件订阅方通知示意图。 事件订阅方通知示意图。

在事件驱动型架构 (EDA) 中,事件订阅方是接收有关特定事件或某类事件的信息的应用程序、服务、设备或人员。事件订阅方也称为“事件使用方”,它们会对与特定事件主题、区域或消息相关的任何更改进行“侦听”和持续轮询,以接收有关事件的消息。当事件订阅方收到有关事件的信息时,它可能会以各种方式处理和响应信息,其中可能包括更新数据库、发送电子邮件、向存储桶中添加对象或触发一个工作流。

什么是事件驱动型架构?

事件驱动型架构 (EDA) 是一种软件设计模式,它使系统能够在实时事件发生时检测、处理、编排和作出响应。事件是任何特定业务系统或业务流程的状态变更。在事件驱动型架构中,事件订阅方在事件发生的瞬间便能获知该事件,这使得应用程序、系统、人员和企业能够进行实时响应。此架构通常会利用命名空间来组织事件类和事件订阅方方法,从而确保代码库干净且可维护。

什么是事件?

事件是已发生的事情。它是状态的变更。事件包括客户购买商品、信息请求、库存更新、可能表明发生安全事件的传感器读数、从购物车中移除的商品、新用户帐户的创建或股票价格达到特定阈值的通知。

事件订阅方如何在事件驱动型架构中发挥作用?

事件驱动型架构由多个硬件和软件组件组成,这些组件连接和部署在一起,以实现有关事件的实时通信。

事件发布方也称为事件生成方,是用于检测或生成事件并将信息发布到事件总线或通道的系统。事件发布方旨在识别状态何时发生变更。事件发布方包括多种系统,例如在数据发生变更时发布事件的数据库、在操作完成时发出指示的微服务、当操作已执行或条件发生变更时发出信号的物联网 (IoT) 设备,以及在订单完成或新用户已注册时发送通知的 CRM 系统。

事件总线也称为事件渠道或事件代理,是加载和分载事件相关信息的地方。事件总线会实时从事件发布方提取数据,并将信息提供给正在侦听特定事件的事件订阅方。事件总线也称为事件流或消息队列,它包括 Apache Kafka、Amazon Kinesis 和 Google Pub/Sub 等平台。

事件订阅方也称为事件监听器或事件使用方,是接收事件相关消息的应用程序、服务、设备或人员。不同的订阅方类别旨在接收有关特定事件或事件类的信息。事件订阅方通常被配置为在事件数据可用时立即进行接收。

事件订阅方能为企业带来哪些好处?

事件会影响企业及其流程和运营的方方面面。如果企业及其人员、应用程序和系统能够更快地对事件作出响应时,他们便能提高生产力、提升效率并增强竞争力。通过将事件订阅方配置为接收有关各种关键业务事件的信息,企业的运营可以更高效、更成功。

事件订阅方如何提取和处理事件?

事件订阅方以各种方式接收、处理和响应事件。

  • 直接通知:在某些情况下,事件发布方不使用事件总线或代理,而是直接向订阅方发送或推送事件。
  • 拉取模型:订阅方还可以选择定期检查或从其感兴趣的队列中拉取新事件,此方式使得它们能够实现批量处理和负载均衡。但是,此模型可能会导致事件处理出现延迟。
  • 发布/订阅:在发布/订阅基础架构中,消息会被发送到已通过消息代理订阅特定事件渠道的事件使用方。代理会执行以下操作:接收事件消息、在必要时进行翻译、保持消息有序、将消息推送给订阅方进行使用以及删除消息。在此模型中,事件无法重放,因此事件订阅方无法对事件进行回溯访问。
  • 事件流处理:使用事件流处理方法时,事件会被写入日志中,并且所有事件订阅方都可以从流的任何部分访问事件,包括过去的事件。事件流处理通常由一个流处理平台来负责,该平台能够以极高的吞吐量(每天处理的事件量通常高达数万亿次)管理海量事件的的日志记录和传输。流处理平台可实现事件持久化。在这种机制下,记录将被保留一段特定的时间。流处理平台还负责管理复杂事件处理,在此过程中,事件订阅方会使用和处理一系列事件,以识别趋势或特定状况。

事件订阅方使用哪些类型的事件?

事件订阅方可以使用各种各样的事件,其复杂程度从非常简单到高度复杂不等。这些事件可能包括:

  • 业务交易:这些事件与业务流程相关,例如客户在线注册、下单、完成付款或更改订单状态。
  • 用户操作:这些操作由用户在使用应用程序或系统时产生,其中包括点击、表单提交、登录/注销活动或页面导航。
  • 通知:生成某些事件是为了通知系统的其他部分或外部系统,此过程可能包括发送电子邮件、触发告警或生成报告等操作。
  • 系统事件:这些事件发生在系统中,并由过程完成、数据更新、系统错误或计划任务开始等因素触发。
  • 传感器输入:在物联网应用中,事件可能由与温度变化、运动检测或位置更新等相关的传感器数据生成。
  • 数据馈送:这些事件源自数据更新,例如数据库中的变更、日志文件中的新条目,或是来自 API 或订阅源等外部数据源的更新。
  • 流处理:实时数据流的处理可能会生成与监控股票价格、分析社交媒体帖子或跟踪实时分析相关的事件。
  • 状态变更:某些事件是由系统内对象或实体的状态变更(例如,将订单从“待处理”更改为“已发货”,或更新跟踪系统中某个工单的状态)生成的。
  • 生命周期事件:这些事件与系统内组件的生命周期相关,例如服务的启动或关闭、新版本的部署或运行状况检查。
  • 集成事件:不同系统或服务之间的交互可能会生成各种事件,这些事件可用于跨系统边界同步数据或触发操作。

常见问题 (FAQ)

在讨论事件驱动型架构时,虽然有些人会对这些术语做出细微的区分,但它们通常可以互换使用。一般来说,事件使用方是一个更广义的术语,它指的是使用和处理事件的任何组件、系统或服务。术语“事件订阅方”更常用在讨论消息传递系统和事件代理时,而“事件监听器”更常用在注册回调的编程和软件开发背景下。

事件订阅方是通过编程方法和配置设置来配置的,这些方法和设置用于定义订阅方如何监听和响应事件。配置因所使用的特定技术栈、框架或消息传递平台而异。在 Drupal、Symfony 或 Microsoft Dynamics 365 Business Central 中配置的事件将使用不同类型的对象和参数来请求事件并验证事件数据。

事件名称是事件驱动型系统中使用的标识符,用于在事件发生时对特定操作或响应进行分类和触发。它们允许事件发布方标记事件,以便事件订阅方或监听器能够理解事件并作出适当的响应,因此在事件驱动型架构中发挥着至关重要的作用。

客户为什么选择 Akamai

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

浏览云计算服务