Cloud Pub/Sub Seek mit Cloud Dataflow verwenden

Pub/Sub Seek ermöglicht Nutzern, zuvor bestätigte Nachrichten wiederzugeben und noch einmal zu verarbeiten oder Nachrichten in großem Umfang zu bestätigen. Wir empfehlen jedoch keinen direkten Zugriff auf Pub/Sub Seek aus einer laufenden Dataflow-Pipeline heraus. Durch den direkten Zugriff wird die Wasserzeichenlogik von Dataflow ungültig und funktioniert bei genau einmaliger Verarbeitung nicht. Darüber hinaus steht der direkte Zugriff in Konflikt mit dem Status einer Pipeline, die verarbeitete Daten enthält.

Wir empfehlen die Verwendung von Pub/Sub Seek mit dem folgenden Workflow:

  1. Erstellen eines Abo-Snapshots
  2. Leeren der Abo-Nachrichten in Dataflow
  3. Pipeline noch einmal starten.

Snapshot erstellen

Sie möchten aus einem Abo-Snapshot eine Verarbeitung durchführen und diese wiederholen. Zum Erstellen dieses Snapshots mit dem gcloud-Befehlszeilentool führen Sie die folgenden Befehle aus:

alias pubsub='gcloud pubsub'
pubsub snapshots create my-snapshot --subscription=seek-demo-sub

Führen Sie den Befehl aus, um zu prüfen, ob Sie den Snapshot erstellt haben:

pubsub snapshots list

Abo-Pipeline leeren

Gehen Sie so vor, um das Abo zu leeren und die Pipeline neu zu starten:

  1. Rufen Sie die Dataflow-Konsole auf und klicken Sie auf Ihre Streaming-Pipeline.
  2. Klicken Sie im Bereich Zusammenfassung auf Job anhalten.
  3. Wählen Sie Leeren, um die Verarbeitung der In-Flight-Nachrichten zuzulassen und warten Sie, bis der Job beendet ist.
  4. Suchen Sie Ihr Abo für den Snapshot mit dem gcloud-Befehlszeilentool:
    pubsub subscriptions seek seek-demo-sub --snapshot=my-snapshot
    
  5. Starten Sie Dataflow-Pipeline noch einmal.