本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon EventBridge
Amazon EventBridge 是无服务器事件总线服务,通常是事件驱动型架构(EDA)的基础。您还可以用其在微服务之间异步路由和传送消息。生产者使用 EventBridge 将事件发布到总线。您可以配置基于事件内容的匹配规则,并选择一个或多个目标,用于接收符合该规则的事件。EventBridge 支持多种规则目标。事件总线可助力将生产者与使用者分开,并整合路由和传送逻辑。
在 EventBridge 中,您还可以创建定时规则,以便在特定时间执行操作。可以使用基于 cron 和基于速率的表达式来定义事件。
借助 EventBridge Pipes,您无需使用计算服务(如 AWS Lambda)即可将消息从源传输到目标。例如,假设您有一个接收消息的 SQS 队列,该队列应触发 AWS Step Functions 状态机。与其创建一个具有事件源映射的 Lambda 函数来从队列中使用消息,并使用 AWS SDK 编写代码来调用状态机,不如直接使用 EventBridge 管道来完成这些操作,无需编写任何自定义代码。
EventBridge 通常与其他消息传送服务一起使用,例如 Amazon SQS 和 Amazon SNS。例如,将事件传送到 SQS 队列时,接收服务能够灵活地在自身具备处理能力时使用消息,使用速率与事件生成速率无关。同样,您也可以将应向大量订阅用户分发的事件发布到 SNS 主题。
指南
请在下列情况下使用 EventBridge:
-
不需要在服务之间进行同步通信。
-
想要将消息路由逻辑与微服务解耦。微服务仅负责生成事件并将其发布到事件总线,感兴趣的服务会创建规则来匹配并分发这些事件。
-
您需要将消息从一项支持的服务传送到另一项支持的服务。
下列情况下,可以考虑其他服务:
-
需要对事件进行严格的排序。在这些情况下,考虑 Amazon SQS FIFO 队列或 Amazon SNS FIFO 主题。或者,考虑 Amazon Kinesis Data Streams、Amazon Managed Streaming for Apache Kafka(Amazon MSK)等事件流服务。