Implementieren Sie Fehlertoleranz in Managed Service für Apache Flink - Managed Service für Apache Flink

Amazon Managed Service für Apache Flink war zuvor als Amazon Kinesis Data Analytics für Apache Flink bekannt.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Implementieren Sie Fehlertoleranz in Managed Service für Apache Flink

Prüfpunktprüfung ist die Methode, die zur Implementierung von Fehlertoleranz in Amazon Managed Service für Apache Flink verwendet wird. Ein Checkpoint ist ein up-to-date Backup einer laufenden Anwendung, mit dem eine sofortige Wiederherstellung nach einer unerwarteten Anwendungsunterbrechung oder einem Failover ermöglicht wird.

Einzelheiten zum Checkpointing in Apache Flink-Anwendungen finden Sie unter Checkpoints in der Apache Flink-Dokumentation.

Ein Snapshot ist ein manuell erstelltes und verwaltetes Backup des Anwendungsstatus. Mit Snapshots können Sie Ihre Anwendung durch einen Aufruf von UpdateApplicationin einen früheren Zustand zurückversetzen. Weitere Informationen finden Sie unter Anwendungs-Backups mithilfe von Snapshots verwalten.

Wenn Prüfpunktprüfung für Ihre Anwendung aktiviert ist, bietet der Dienst Fehlertoleranz, indem er bei unerwarteten Anwendungsneustarts Backups der Anwendungsdaten erstellt und lädt. Diese unerwarteten Anwendungsneustarts können durch unerwartete Jobneustarts, Instancefehler usw. verursacht werden. Dadurch erhält die Anwendung dieselbe Semantik wie eine fehlerfreie Ausführung bei diesen Neustarts.

Wenn Snapshots für die Anwendung aktiviert und mithilfe der Snapshots der Anwendung konfiguriert sind, bietet der Dienst bei ApplicationRestoreConfigurationAnwendungsupdates oder während der dienstbezogenen Skalierung oder Wartung die Semantik für die Verarbeitung genau einmal.

Konfigurieren Sie Checkpointing in Managed Service für Apache Flink

Sie können das Prüfpunktprüfungs-Verhalten Ihrer Anwendung konfigurieren. Sie können festlegen, ob sie den Prüfpunktprüfungs-Status beibehält, wie oft sie ihren Status an Prüfpunkten speichert und das Mindestintervall zwischen dem Ende einer Prüfpunkt-Operation und dem Beginn einer anderen.

Sie konfigurieren die folgenden Einstellungen mithilfe der Operationen CreateApplicationoder UpdateApplicationAPI:

  • CheckpointingEnabled – Gibt an, ob Prüfpunktprüfung in der Anwendung aktiviert ist.

  • CheckpointInterval – Enthält die Zeit in Millisekunden zwischen Prüfpunkt-Vorgängen (Persistenzoperationen).

  • ConfigurationType – Setzen Sie diesen Wert auf DEFAULT, um das standardmäßige Prüfpunktprüf-Verhalten zu verwenden. Setzen Sie diesen Wert auf CUSTOM, um andere Werte zu konfigurieren.

    Anmerkung

    Das Standardverhalten von Prüfpunkten ist wie folgt:

    • CheckpointingEnabled: wahr

    • CheckpointInterval: 60000

    • MinPauseBetweenCheckpoints: 500

    Wenn auf gesetzt ConfigurationTypeistDEFAULT, werden die vorherigen Werte verwendet, auch wenn sie entweder mithilfe von oder durch Setzen der AWS Command Line Interface Werte im Anwendungscode auf andere Werte gesetzt wurden.

    Anmerkung

    Ab Flink 1.15 verwendet Managed Service für Apache Flink stop-with-savepoint während der automatischen Snapshot-Erstellung, d. h. beim Aktualisieren, Skalieren oder Stoppen von Anwendungen.

  • MinPauseBetweenCheckpoints – Die Mindestzeit in Millisekunden zwischen dem Ende einer Prüfpunkt-Operation und dem Beginn einer anderen. Wenn dieser Wert festgelegt ist, verhindert dies, dass die Anwendung fortlaufende Prüfpunktprüfung durchführt, wenn eine Prüfpunkt-Operation länger dauert als das CheckpointInterval.

Sehen Sie sich die Beispiele für Checkpoints an API

Dieser Abschnitt enthält Beispielanfragen für API Aktionen zur Konfiguration von Checkpointing für eine Anwendung. Hinweise zur Verwendung einer JSON Datei als Eingabe für eine API Aktion finden Sie unterBeispielcode für Managed Service für Apache Flink API.

Konfigurieren Sie Checkpointing für eine neue Anwendung

In der folgenden Beispielanforderung für die CreateApplication-Aktion wird Prüfpunktprüfung konfiguriert, wenn Sie eine Anwendung erstellen:

{ "ApplicationName": "MyApplication", "RuntimeEnvironment":"FLINK-1_19", "ServiceExecutionRole":"arn:aws:iam::123456789123:role/myrole", "ApplicationConfiguration": { "ApplicationCodeConfiguration":{ "CodeContent":{ "S3ContentLocation":{ "BucketARN":"arn:aws:s3:::mybucket", "FileKey":"myflink.jar", "ObjectVersion":"AbCdEfGhIjKlMnOpQrStUvWxYz12345" } }, "FlinkApplicationConfiguration": { "CheckpointConfiguration": { "CheckpointingEnabled": "true", "CheckpointInterval": 20000, "ConfigurationType": "CUSTOM", "MinPauseBetweenCheckpoints": 10000 } } }

Deaktivieren Sie Checkpointing für eine neue Anwendung

Die folgende Beispielanforderung für die CreateApplication-Aktion deaktiviert Prüfpunktprüfung, wenn Sie eine Anwendung erstellen:

{ "ApplicationName": "MyApplication", "RuntimeEnvironment":"FLINK-1_19", "ServiceExecutionRole":"arn:aws:iam::123456789123:role/myrole", "ApplicationConfiguration": { "ApplicationCodeConfiguration":{ "CodeContent":{ "S3ContentLocation":{ "BucketARN":"arn:aws:s3:::mybucket", "FileKey":"myflink.jar", "ObjectVersion":"AbCdEfGhIjKlMnOpQrStUvWxYz12345" } }, "FlinkApplicationConfiguration": { "CheckpointConfiguration": { "CheckpointingEnabled": "false" } } }

Konfigurieren Sie Checkpointing für eine bestehende Anwendung

Die folgende Beispielanforderung für die UpdateApplication-Aktion konfiguriert Prüfpunktprüfung für eine bestehende Anwendung:

{ "ApplicationName": "MyApplication", "ApplicationConfigurationUpdate": { "FlinkApplicationConfigurationUpdate": { "CheckpointConfigurationUpdate": { "CheckpointingEnabledUpdate": true, "CheckpointIntervalUpdate": 20000, "ConfigurationTypeUpdate": "CUSTOM", "MinPauseBetweenCheckpointsUpdate": 10000 } } } }

Deaktivieren Sie Checkpointing für eine bestehende Anwendung

Die folgende Beispielanforderung für die UpdateApplication-Aktion deaktiviert Prüfpunktprüfung für eine bestehende Anwendung:

{ "ApplicationName": "MyApplication", "ApplicationConfigurationUpdate": { "FlinkApplicationConfigurationUpdate": { "CheckpointConfigurationUpdate": { "CheckpointingEnabledUpdate": false, "CheckpointIntervalUpdate": 20000, "ConfigurationTypeUpdate": "CUSTOM", "MinPauseBetweenCheckpointsUpdate": 10000 } } } }