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, das zur sofortigen Wiederherstellung nach einer unerwarteten Anwendungsunterbrechung oder einem Failover verwendet wird.
Einzelheiten zum Checkpointing in Apache Flink-Anwendungen finden Sie unter Checkpoints
Ein Snapshot ist ein manuell erstelltes und verwaltetes Backup des Anwendungsstatus. Mit Snapshots können Sie Ihre Anwendung durch einen Aufruf von UpdateApplication
in 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 CreateApplication
oder UpdateApplication
API:
-
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 aufDEFAULT
, um das standardmäßige Prüfpunktprüf-Verhalten zu verwenden. Setzen Sie diesen Wert aufCUSTOM
, um andere Werte zu konfigurieren.Anmerkung
Das Standardverhalten von Prüfpunkten ist wie folgt:
CheckpointingEnabled: wahr
CheckpointInterval: 60000
MinPauseBetweenCheckpoints: 500
Wenn auf gesetzt ConfigurationTypeist
DEFAULT
, 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 dasCheckpointInterval
.
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 unterAPIBeispielcode für Managed Service für Apache Flink.
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:::amzn-s3-demo-bucket", "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:::amzn-s3-demo-bucket", "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 } } } }