【发布时间】:2018-03-25 02:17:01
【问题描述】:
我有一个将 Pub/Sub 订阅作为无限源的数据流流作业。我想知道数据流在什么阶段确认传入的发布/订阅消息。在我看来,如果在数据流管道的任何阶段引发异常,消息就会丢失。
我还想知道如何使用 pub/sub 无限源编写数据流管道的最佳实践,以便在失败时检索消息。谢谢!
【问题讨论】:
标签: google-cloud-platform google-cloud-pubsub apache-beam dataflow
我有一个将 Pub/Sub 订阅作为无限源的数据流流作业。我想知道数据流在什么阶段确认传入的发布/订阅消息。在我看来,如果在数据流管道的任何阶段引发异常,消息就会丢失。
我还想知道如何使用 pub/sub 无限源编写数据流管道的最佳实践,以便在失败时检索消息。谢谢!
【问题讨论】:
标签: google-cloud-platform google-cloud-pubsub apache-beam dataflow
在捆绑成功并且捆绑的结果(输出和状态突变等)已被持久提交后,Dataflow Streaming Runner 会确认捆绑接收的 pubsub 消息。失败的捆绑包会重试直到成功,并且不会导致数据丢失。如果您认为可能会发生数据丢失,请提供详细信息(作业 ID 和您得出结论认为数据已因故障而丢失的原因),我们将进行调查。
【讨论】:
2017-10-12_19_26_32-4234684930060241078。您可以在控制台中看到有一个阶段失败,因此在其“输出集合”部分中没有显示任何内容。我无法通过新的数据流作业(取消此作业后)再次接收丢失的数据。我也无法使用 pub/sub 客户端库接收数据。