事件使用方是什么?

事件使用方是事件驱动型架构 (EDA) 的一个组件。事件使用方是指订阅了某个提供事件即时信息的通道的应用程序、服务、设备或人员。事件是信息、流程或关键业务系统的状态变化。它们是可能在企业内部或外部发生的操作或者对企业实施的操作,包括新的客户交易、库存变化、安全漏洞、收到的电子邮件、添加到购物车中的商品、工作流程的完成等。

当事件使用方收到有关事件的通知时,它们可以通过执行某种操作来进行响应。响应可能涵盖从发送电子邮件告警或处理用户输入到触发工作流程或发起新事件的多种操作。单个 EDA 应用程序可以有多个等待接收有关各种事件的信息的事件使用方。常见事件使用方包括计费系统、通知引擎、CRM 平台、微服务和银行系统。

什么是事件驱动型架构?

事件驱动型架构和事件使用方组件的示意图。 事件驱动型架构和事件使用方组件的示意图。

事件驱动型架构是一种软件设计模式,它使系统能够对事件相关信息进行实时检测、处理、响应和共享。EDA 系统的最大好处在于,它们能够在事件发生后立即传输数据,从而使事件使用方能够立即采取行动。

事件驱动型架构最重要的方面之一是,生成和处理事件的系统是解耦或松散耦合的。例如,使用事件的系统与生成事件的系统并不相互依赖,也不需要知道信息来自何处。这意味着,一项服务发生故障并不会导致其他服务出现问题或中断。

EDA 的另一个重要特征是异步消息传递。与系统必须在采取行动前等待响应的“请求和响应”模式不同,事件驱动型架构中的组件以异步方式通信,无需等待其他组件的回复即可继续执行操作。这使得 EDA 系统在实时处理和快速处理海量数据方面表现出色,因为组件可以立即对事件作出响应并处理数据。

事件使用方在 EDA 中的作用是什么?

事件使用方是事件驱动型架构中的几个关键元素之一。EDA 组件包括:

  • 事件:事件是表明已发生某种情况的信号,或者是状态的变化。
  • 事件生成方:事件生成方是物联网设备、用户界面、数据库、外部 API、工作流程引擎、云服务、应用程序监视器以及其他生成和传递事件的技术等系统。
  • 事件消息:事件消息(即事件通知)包含有关事件的信息。它们通常采用 JSON 或 YAML 格式。
  • 事件使用方:事件使用方也称为事件订阅方,它们会“监听”或接收有关事件的信息,并根据所接收的信息发起操作。事件使用方可能会执行一些任务,例如针对潜在漏洞向安全团队发出告警、更新库存级别、向客户发送确认电子邮件或触发工作流程。
  • 事件路由器:事件路由器通过充当生成方与使用方之间的中介来实现异步消息传递和松散耦合的架构。路由器可能是事件总线、消息队列、事件代理或事件流,它们接收来自生成方的事件数据并将其传递给已订阅特定事件通道的使用方。
  • 事件处理方:事件处理方负责管理事件使用方接收的事件数据,并应用相关规则来启动新事件、启动任务或执行操作。事件处理方还会路由、过滤和转换事件数据。

使用事件使用方有什么好处?

每个企业、每项业务运营和每个业务流程都由事件驱动并受其影响。企业收到通知和对事件作出响应的速度越快,他们在效率、生产力和竞争力方面获得的收益就越大。通过使用事件使用方和事件驱动型架构,企业能够即时收到事件通知并立即采取惠及自身及客户的行动。

事件驱动型架构使企业能够:

  • 实时处理数据。在 EDA 中,异步消息传递意味着组件可以在事件发生时立即传递和处理事件,而无需等待响应。
  • 对真实事件作出快速响应。事件驱动型架构可在事件发生时自动即时执行操作,从而提高响应速度。
  • 轻松扩展。由于 EDA 组件是解耦或松散耦合的,因此各个组件可以根据工作负载的需求独立进行扩缩。
  • 减少停机时间。EDA 能够增强系统的恢复能力和容错能力,因为它可确保即使一项服务或系统出现问题,其他组件也能继续运行。
  • 提升集成与互操作性。基于事件的通信具备解耦或松散耦合性质,这使得不同的系统更容易协同工作并共享信息。
  • 提高速度。EDA 可以加快您的系统速度,因为不同的组件无需相互等待。

事件使用方如何接收事件?

发布和使用事件有两种主要模式。

发布/订阅 (pub/sub)

在此模式(也称为事件消息传递模式)下,事件使用方会订阅各种主题,并选择接收有关特定事件的信息。当事件生成方发布事件时,该信息会被发送给事件代理,后者会根据需要转译或转换信息,将数据排入队列并进行存储,然后将消息发送到事件使用方。在使用方收到消息后,代理会将消息删除。

知名的 pub/sub 服务包括 Apache Kafka、Confluent、Amazon Simple Notification Service (SNS)、Amazon Simple Queue Service (SQS)、Azure Web Pub/Sub 和 GCP 的 Pub/Sub。

 

事件流模式

在这种方法中,事件使用方会订阅由事件生成方发送给代理的流事件消息。与 pub/sub 相比,消息具有持久性,这意味着它们会被存储并保留一段时间。这表示,使用方可以随时加入事件流,并且能够回溯性地访问事件消息。还可以将使用方配置为仅接收流中的某些事件,而不是像使用 pub/sub 模式时接收所有已发布的消息。事件流模式还支持复杂的事件处理,在这种处理中,事件使用方会根据一系列事件中的信息提取和启动操作。

提供事件流的产品有 AWS EventBridge、AWS Kinesis、Azure Stream Analytics、GCP Dataflow 和 Apache Beam。

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

事件使用方会提取并处理各种事件数据。

  • 电商:事件驱动型架构是电子商务系统的支柱,在这些系统中,即时响应客户操作对于提供无缝体验至关重要。
  • 网络安全:事件使用方可通过实时处理安全事件来为安全团队提供告警、阻止恶意文件或隔离可疑流量。
  • 微服务:EDA 是实现微服务间通信的理想架构,因为它具备解耦通信、模块化、可扩展性和容错能力等特性。
  • 数据分析:许多事件使用方会处理和分析实时数据,以发现模式并从海量数据中获取见解。欺诈检测系统是应用 EDA 技术的一个常见示例,该技术旨在标记金融交易中的异常情况。
  • 监控:EDA 系统非常适合监控系统资源的运行状况,并在需要预测性维护或紧急干预时向系统管理员发出告警。
  • 物联网 (IoT):EDA 系统可轻松提取和监控物联网设备所产生的海量数据,从而实现实时监控和分析。
  • 股票市场:交易行业中的事件使用方对于自动交易策略至关重要,这些策略可根据股票市场内快速变化的条件和事件来执行买入/卖出。
  • 工作流程:EDA 系统可根据各种事件触发流程和任务,从而实现自动化工作流程。

常见问题

术语“事件使用方”、“事件监听器”和“事件订阅方”通常被视为同义词。但是,一些人认为“事件使用方”是一个更广泛的术语,适用于任何处理事件的系统,“事件订阅方”通常用在描述事件代理和事件通道时,而“事件监听器”通常是在与编程框架或库相关的情境下使用。

事件使用方可通过多种方式进行配置,具体取决于所部署的特定技术栈、消息传递平台或框架。企业可以在 Apache Kafka、RabbitMQ 和 AWS SNS/SQS 等中间件和消息传递系统、Spring、.NET 或 NODE.JS 库等编程框架、AWS Lambda 和 Azure Functions 等云平台、Kubernetes 等容器编排平台中,或在 Drupal、Symfony 和 Microsoft Dynamics 365 Business Central 等平台中配置事件使用方。

客户为什么选择 Akamai

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

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