pubsub 消息何时在 Dataflow 管道中被确认?

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

这里的doc说的是

Dataflow runner 的 PubsubIO 实现在消息被第一个融合阶段成功处理后自动确认消息,并且该处理的副作用被写入持久存储。有关详细信息,请参阅融合文档。因此,只有当 Dataflow 可以保证在某些组件崩溃或连接丢失时不会丢失数据时,才会确认消息。

我知道在管道中间使用的 GroupByKey 转换会阻止融合,从而强制进行持久提交,从而导致消息被确认。但是,如果我的整个管道仅由 2 个 PTransform 组成——第一个是 pubsub 源 IO,下一个 PTransform 是一个不产生任何输出的简单日志 DoFn,会发生什么情况。在这种情况下,Dataflow 在基本上没有操作记录 PTransform 之后是否仍然确认消息?根据我的测试,情况确实如此,但我想通过更严格的解释来确认我的理解。

即使最后一个 PTransform 没有输出任何 PCollection,pubsub 消息也会在管道末尾被确认是否正确? (因为在记录 DoFn 时没有产生任何结果)

google-cloud-dataflow apache-beam
© www.soinside.com 2019 - 2024. All rights reserved.