2016-07-26 21 views
0

Wir haben einen Datenflussprozess abonniert "Subscription A" auf einem "Topic A" verarbeitet Nachrichten im Streaming-Modus.Dataflow-Prozess ruft Nachrichten in der Warteschlange nach dem Neustart nicht ab

Laut PubSub-Dokumentation werden die Nachrichten für mindestens 7 Tage pro Abonnement aufbewahrt, wenn die Nachrichten nicht abgerufen werden. Habe ich recht, wenn ich meinen Dataflow-Prozess für eine Stunde stoppe und dann neu starte, sollte er alle Nachrichten verarbeiten, die im Abonnement gesammelt wurden, während der Abonnentenprozess unterbrochen war, bevor mit den Streaming-Nachrichten fortgefahren wurde?

In unserem Fall scheint der Dataflow-Prozess die Nachrichten in der Warteschlange nach dem Neustart nicht aufzunehmen. Gibt es eine explizite Konfigurationsoption, die uns fehlt?

+1

Ihre Annahme ist richtig, Dataflow sollte solche Ausfallzeiten transparent behandeln und den gesamten Rückstand verarbeiten, wenn Sie die Pipeline erneut starten. Können Sie mehr darüber erfahren, wie Sie feststellen, dass Dataflow die Nachrichten in der Warteschlange nicht verarbeitet hat? Eine Job-ID würde helfen. – jkff

+1

Da Sie auch gesagt haben, dass Sie Ihre Pipeline für eine Stunde anhalten, frage ich mich, ob Sie möglicherweise an der Pipeline-Update-Funktion interessiert sind (https://cloud.google.com/dataflow/pipelines/updating-a-pipeline). – jkff

+1

Lesen Sie von einem Thema oder einem Abonnement? Wenn Sie ein Thema angeben, erstellt Dataflow beim Start des Jobs ein neues Abonnement. In diesem Fall hätte es keine gepufferten Nachrichten (die Nachrichten werden pro Abonnement beibehalten). –

Antwort

1

Wir haben es erneut getestet und es scheint gut zu funktionieren. Es scheint sich auf einige andere Probleme zu beziehen.