使用 Eventarc 的事件驱动型架构概览

您可以使用 Eventarc 和 Datastore 模式 Firestore 构建事件驱动型架构。Datastore 模式 Firestore 为 根据更改生成事件的 Eventarc 数据库中的特定实体。触发器可以将事件路由到 受支持的目标平台

Eventarc 提供了一个用于管理解耦的微服务之间的状态更改(称为“事件”)流的标准化解决方案。触发后, Eventarc 会将这些事件路由到 同时管理递送、安全、授权 可观测性和错误处理功能

实际使用示例

事件驱动型架构是一种系统设计模式,其中服务会对状态变化(称为“事件”)作出反应。您可以将此模式与 Firestore 的可伸缩性结合使用,为应用添加更多功能。例如,您可以添加以下功能:

  • 不同技术栈之间的互操作性

    先复制数据并进行转换,然后再将其发送到 分析系统。

  • 并行处理

    扇出操作以进行并行处理。如果您有多个系统 基于实体更改进行操作,您可以在每个 API 中使用基于推送的流, 并将事件路由给多个使用方

  • 基于推送的事件流

    构建基于推送的消息设计。客户端可以接收通知,而无需轮询远程服务。无需轮询延迟,您就可以更好地执行即时数据处理和实时分析。

  • 状态监控和提醒

    使用事件驱动型架构向数据库操作添加自定义指标。监控更改和更新,并接收相关提醒。检测异常。

限制

请注意以下关于 Datastore 模式触发器的 Eventarc:

  • 无法保证顺序。快速更改可能会以意想不到的顺序触发事件。
  • 事件至少会被传送一次。

    确保事件处理脚本具有幂等性,并避免在事件被传递多次时产生意外结果或副作用。如需了解详情,请参阅构建幂等函数

  • 一个触发器与单一数据库相关联。您无法创建与多个数据库匹配的触发器。

  • 删除数据库不会自动删除该数据库的任何触发器。触发器会停止传送事件,但会继续存在,直到您删除触发器

Datastore 模式 Eventarc 和 Firestore 的位置

Eventarc 不支持 Firestore 事件触发器的多区域,但您仍然可以在多区域位置为 Firestore 数据库创建触发器。Eventarc 映射 Firestore 多区域位置复制到以下 Eventarc 区域:

Firestore 多区域 Eventarc 区域
nam5 us-central1
eur3 europe-west4

Datastore 模式与原生模式事件的互操作性

Eventarc 支持适用于 Datastore 模式和 Native 的事件触发器 模式。这些事件触发器可与这两种数据库类型互操作。 原生模式 Firestore 数据库可以接收 Datastore 而 Datastore 模式 Firestore 数据库也可 原生模式事件。

借助事件互操作性,您可以在不同类型的 Firestore 数据库之间共享 Eventarc 代码。

事件转化

如果将原生模式事件触发器应用于 Datastore 模式数据库,Eventarc 会进行以下转换:

  • 实体的命名空间存储在事件的 PartitionId 属性中。
  • 嵌入的实体将转换为原生模式 map 类型。

后续步骤