我有一个使用Pub/Sub订阅作为无界源的数据流处理工作。我想知道在哪个阶段数据流处理会确认收到Pub/Sub消息。如果在数据流处理管道的任何阶段抛出异常,似乎消息就会丢失。
此外,我想知道如何编写最佳实践的数据流处理管道,以便在失败时从Pub/Sub无界源中检索消息。谢谢!
我有一个使用Pub/Sub订阅作为无界源的数据流处理工作。我想知道在哪个阶段数据流处理会确认收到Pub/Sub消息。如果在数据流处理管道的任何阶段抛出异常,似乎消息就会丢失。
此外,我想知道如何编写最佳实践的数据流处理管道,以便在失败时从Pub/Sub无界源中检索消息。谢谢!
Dataflow Streaming Runner会在成功处理完一个bundle并且bundle的结果(输出和状态变化等)已经被持久化提交之后,确认收到的pubsub消息。失败的bundles会不断重试直到成功,并且不会导致数据丢失。如果您认为可能存在数据丢失,请提供详细信息(作业ID和您得出数据丢失结论的原因),我们将进行调查。
2017-10-12_19_26_32-4234684930060241078
。您可以在控制台中看到有一个阶段失败了,因此在其“输出集合”部分中没有显示任何内容。我无法通过新的数据流作业(取消此作业后)再次接收丢失的数据。我也无法使用pub/sub客户端库接收数据。 - Kakaji