我浏览了文档,但是我找不到PubSubIO.Read函数如何处理确认。具体来说,我感兴趣的是消息是逐一确认还是以微批方式确认。如果是后者,我想知道我们是否可以设置批量大小。
任何帮助都将不胜感激。
答案 0 :(得分:1)
来自When does Dataflow acknowledge a message of batched items from PubSubIO?:
Dataflow以捆绑形式执行您的代码。成功执行后,每个bundle都致力于避免在成功处理的元素上重新执行。捆绑包不一定在管道中的每个步骤之间提交。有关何时实现PCollections的详细信息,请参阅融合优化的说明。
对于PubSub,作为bundle的一部分读取的消息将被确认为提交该bundle的完成的一部分。这意味着如果您查看PubSub读取步骤以及之后的任何ParDos,它们将一起执行(并提交)。
因此,消息既不是逐一确认也不是可控批次。它取决于如何以及何时在下游提交消息处理。