PubsubIO.Read +恰好一次交付

时间:2018-02-05 21:46:33

标签: google-cloud-dataflow apache-beam google-cloud-pubsub

使用2.2 Dataflow SDK是否可以使用Pubsub自动应用的messageId字段实现一次性交付?或者这甚至可能是默认行为?

PubsubIO.Read.withIdAttribute似乎通常可能这样,但我无法控制已发布的消息,所以我希望使用messageId字段。

在旧的1.x docs中声明:

  

此外,您可以完成一次Pub / Sub消息流的处理,因为PubsubIO根据自定义消息标识符或Pub / Sub分配的标识符对消息进行重复数据删除。

最后一部分有一些暗示,读取的默认行为可能固有地使用messageId进行一次交付。

1 个答案:

答案 0 :(得分:2)

是的,1.x和2.2在这方面都是相同的。两者都提供了一次性处理语义。 Pubsub消息ID用于两者。

请注意,它恰好一次“处理”和完全一次“交付”并不总是相同。交付通常意味着汇入外部系统,这超出了Dataflow管道的范围。当管道中有重试时,接收器可能具有重复写入。