GCP 数据流 Pub/Sub 到云存储上的文本文件

GCP Dataflow Pub/Sub to Text Files on Cloud Storage

我指的是 Google 提供的数据流 Pub/Sub to Text Files on Cloud Storage

数据流读取过的消息未得到确认。我们如何确保数据流使用过的消息得到确认并且对任何其他订阅者不可用?

要重现和测试它,从同一个模板创建 2 个作业,您会看到这两个作业处理相同的消息。

首先,正确确认消息。

然后,为了证明这一点,以及您的复制是如何错误的,我想关注 PubSub 行为。

  • 一个或多个发布者在一个主题中发布消息
  • 一个主题可以创建一个或多个订阅
  • 在每个订阅中复制一个主题中发布的所有消息
  • 订阅可以有一个或多个订阅者。
  • 每个订阅者都会收到订阅中消息的子集。

返回您的模板。您只指定一个主题,而不是订阅。当您的数据流为 运行 时,转到订阅,您将能够看到创建的新订阅。

-> 当您启动 PubSub to TextFiles 模板时,会自动在提供的主题上创建订阅

因此,如果您创建 2 个作业,您将有 2 个订阅,因此,主题中发布的所有消息都会复制到每个订阅中。这就是为什么您会收到 2 次相同的消息。

现在,继续你的工作,去订阅吧。在这里您可以看到队列中的消息数和未确认的消息。您应该在未确认的消息图中看到 0。