Eventarc Advanced 概览

借助 Eventarc,您可以构建事件驱动型和基于消息的架构,而无需实现、自定义或维护底层基础架构。

Eventarc 提供两个版本:Eventarc AdvancedEventarc Standard。这两个版本都提供可伸缩、无服务器且全代管式事件处理解决方案,让您能够以异步方式将事件从来源路由到目标。如需了解详情,请参阅选择 Eventarc Advanced 或 Eventarc Standard

Eventarc Advanced 旨在简化跨应用、服务和端点的事件数据通过消息的提取、编排和传送。借助 Eventarc Advanced,您可以收集系统中发生的事件,并将其发布到中央总线。感兴趣的服务可以通过创建注册来订阅特定消息。您可以使用总线和流水线来实时路由来自多个来源的事件,将这些事件发布到多个目标位置,并可以选择在将事件传递到目标位置之前对其进行转换。

Eventarc Advanced 非常适合具有复杂事件和消息传递需求的组织,特别是那些难以管理众多 Pub/Sub 主题、Kafka 队列或其他第三方消息传递系统的组织。Eventarc Advanced 可为管理员提供增强的集中式可见性和控制权,使组织能够连接不同项目中的多个团队。

您可以通过 Google Cloud 控制台、从命令行(使用 Google Cloud CLI)或使用 Eventarc API 来管理 Eventarc Advanced。

借助 Eventarc Advanced,您可以在不同的服务、应用和系统之间接收、过滤、转换、路由和传送消息。
借助 Eventarc Advanced,您可以接收、过滤、转换、路由和传送不同服务、应用和系统
之间的消息(点击图表可放大)。

主要概念

  1. 总线为事件提供可检测的端点,并且是一个路由器,可接收提供方发布的所有事件,并将这些事件传递到零个或多个目的地。借助总线,您可以集中处理、监控和跟踪系统中的消息流。您可以使用总线将来自多个来源的事件路由到多个目标。

  2. 系统会根据注册(表示对特定总线收集的事件的订阅)的标准来评估到达总线的消息。事件会路由到已订阅这些特定事件的使用者。加入该计划后,您可以使用通用表达式语言 (CEL),通过根据事件属性匹配事件来定义精细的访问权限控制政策。注册还允许您指定匹配的事件应传送到的流水线。

  3. 流水线是总线与目标之间的传送中介。 流水线可指定目标目的地,并且在将任何匹配的事件传送到目的地之前,还可以选择对这些事件进行转换。它支持多种载荷格式,可让您在不修改源服务或目标服务的情况下即时调整事件数据,从而处理不同的事件结构。

主要功能

Eventarc Advanced 支持目标应用的许多应用场景。以下是一些关键功能:

  • 大规模应用集成:您可以连接众多服务和应用,从而实现不同事件格式和架构之间的异步通信。

  • 用于 AI 和分析的事件流:您可以处理来自 IoT 设备和 AI 工作负载的大量数据,在将事件馈送到分析流水线之前对其进行过滤、转换和丰富。

  • 混合云和多云部署:您可以将事件驱动型架构扩展到 Google Cloud之外,与本地系统和其他云服务提供商集成。借助 Eventarc Advanced,您可以路由来自各种来源(包括 Google 来源和事件的直接发布者)的事件。

了解区域性

Eventarc Advanced 是一项完全区域性的服务:所有 Eventarc Advanced 流量和数据都必须位于同一区域。例如,注册和流水线只能读取和处理来自总线所在区域的数据。通过以下方式可以实现跨区域支持:将事件发布到不同区域中的不同总线,以及在跨多个区域的服务边界内配置网络。

项目布局

所有 Eventarc 资源都必须属于某个 Google Cloud项目。不过,提供方(事件源)、总线(管理员)和流水线(事件目标)不必位于同一项目中。您还可以从多个项目中的 Google 来源收集和发布事件。如需了解详情,请参阅发布来自多个项目的事件

您可以结合使用 Identity and Access Management (IAM) 权限来控制资源使用情况,使用访问政策CEL 来实现对数据的精细访问控制,并使用服务边界来支持不同的入站和出站流量需求,从而满足网络和安全要求。

事件

事件是表示出现及其上下文的数据记录,用于指示资源或环境中的变化。事件是与其他事件无关的独立通信单元。例如,事件可能表示数据库中数据的更改、添加到存储系统的文件或预定作业。

请注意,事件也是组件在其状态发生变化时发出的消息。当事件发生时,消息会发送到事件基础架构,供使用方检索。在事件驱动型架构的背景下,我们通常使用“事件”一词来指代传达事件的消息,而不是指事件本身(即实际发生的情况,导致生成了相应消息)。

事件类型

Eventarc Advanced 支持直接来自 Google 来源的事件。

如需了解详情,请参阅 Eventarc 支持的 Google 事件类型

事件提供方和目的地

Eventarc Advanced 会从事件提供方收集事件,并将其路由到事件目的地。每个 Eventarc Advanced 流水线只能指定一个目的地作为路由消息的目标。

支持的提供方包括 Google 提供方和直接发布事件的发布商。 支持的目标位置包括 Cloud Run、Cloud Run 函数、虚拟私有云网络中托管的 HTTP 端点、Pub/Sub 主题、Workflows 和另一个 Eventarc Advanced 总线。

如需了解详情,请参阅事件提供方和目的地

事件格式和库

Eventarc 使用二进制内容模式中的 HTTP 请求将事件(无论提供方为何)以 CloudEvents 格式传递到目标目的地。CloudEvents 是一种以通用方式描述事件元数据的规范。

目标目的地(如 Cloud Run functions 和 Cloud Run)使用 HTTP 格式的事件。对于 Workflows 目的地,Workflows 服务会将事件转换为 JSON 对象,并将事件作为运行时参数传递给工作流执行。

使用标准方法描述事件元数据可确保一致性、可访问性和可移植性。事件使用方可以直接读取这些事件,也可以使用各种语言(包括 C++、C#、Go、Java、Node.js、PHP、Python 和 Ruby)的 Cloud 客户端库来读取和解析事件。此外,还有一组特定于语言的 CloudEvents SDK

Google CloudEvents GitHub 代码库中提供了所有事件的 HTTP 正文结构。

可靠性和传送

不保证按顺序的先进先出传送。请注意,如果严格按顺序传送消息,将会影响 Eventarc 与其传输层 Pub/Sub 匹配的可用性和可伸缩性。如需了解详情,请参阅对消息排序

对于延迟时间和吞吐量,提供尽力而为的保证。它们会因多种因素而异,包括发布或出站流量是否涉及不同区域、特定服务的配置以及 Google Cloud 区域中资源的网络负载。

请注意,Eventarc 通常具有使用配额和限制

事件重试政策

Eventarc Advanced 设置的默认消息保留时长为 24 小时,具有指数退避算法延迟。

Eventarc Advanced 使用通过指数退避算法确定的延迟时间来处理可重试的错误。此延迟时间从 1 秒开始,每次尝试失败后延迟时间都会翻倍(最多 60 秒,最多尝试 5 次)。

如需了解详情,请参阅重试事件

重复事件

重复事件可能会传送到事件处理程序。根据 CloudEvents 规范sourceid 属性的组合被视为唯一,因此任何具有相同组合的事件被视为重复事件。作为一般最佳实践,您应该实现具有幂等性的事件处理程序

可观测性

Google Cloud Observability 提供监控、日志记录和诊断工具。这些工具可帮助您监控和分析 Eventarc 活动和增长情况,并了解应用的行为、运行状况和性能。如需了解详情,请参阅 Eventarc 中的可观测性

您可以从 Cloud Audit Logs 获取 EventarcCloud RunCloud Run functionsPub/SubWorkflows 的详细日志。

合规性标准

Eventarc 符合这些认证和标准

后续步骤