GCP Pub 子主题

问题描述 投票:0回答:1

我的应用程序基于 2 个 GCP 云函数,它们使用来自不同主题的消息。

第一个云函数使用来自第一个主题的有关对象创建的消息。 第二个云函数使用来自第二个主题的有关在第一个云函数和第一个主题的连接中创建的对象状态更改的消息。

所以我有两个独立的不同主题,但第二个主题生成的消息是第一个主题的消息的逻辑延续。

我们无法保证我的应用程序将首先从第一个主题消耗,然后从第二个主题消耗。

如何设计架构才能不丢失数据?

python google-cloud-platform google-cloud-functions google-cloud-pubsub dead-letter
1个回答
0
投票

您可以拥有事件驱动模式,如果:

  • 第二个主题中发布的事件(对于第二个函数)是第一个函数执行操作的结果(例如,第一个函数更新 Firestore 中的值,第二个函数在 Firestore 中更新的值时触发)

但是,如果您需要编排,请使用编排工具,例如 Cloud Workflow(最好)或 Cloud Composer。因此,删除您的第二个 PubSub 主题,然后像这样进行编排

  • 在 PubSub 主题中捕捉事件
  • 以 PubSub 消息作为参数启动编排流程
  • 使用第一个函数处理消息。
  • 在编排工具中获取更新结果
  • 调用第二个函数
© www.soinside.com 2019 - 2024. All rights reserved.