Implementazione della tolleranza agli errori in Managed Service for Apache Flink - Servizio gestito per Apache Flink

Il servizio gestito da Amazon per Apache Flink era precedentemente noto come Analisi dei dati Amazon Kinesis per Apache Flink.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Implementazione della tolleranza agli errori in Managed Service for Apache Flink

La creazione di checkpoint è il metodo utilizzato per implementare la tolleranza agli errori nel servizio gestito da Amazon per Apache Flink. Un checkpoint è un up-to-date backup di un'applicazione in esecuzione che viene utilizzato per il ripristino immediato in caso di interruzione o failover imprevisti dell'applicazione.

Per i dettagli sul checkpoint nelle applicazioni Apache Flink, consulta Checkpoints nella documentazione di Apache Flink.

Uno snapshot è un backup dello stato dell'applicazione creato e gestito manualmente. Gli snapshot consentono di ripristinare l'applicazione a uno stato precedente chiamando UpdateApplication. Per ulteriori informazioni, consulta Gestione dei backup delle applicazioni tramite istantanee.

Se abilitato per l'applicazione, il servizio di creazione di checkpoint fornisce tolleranza agli errori creando e caricando backup dei dati dell'applicazione in caso di riavvii imprevisti della stessa. I riavvii imprevisti dell'applicazione potrebbero essere causati da riavvii imprevisti dei processi, errori delle istanze, ecc. Ciò conferisce all'applicazione la stessa semantica dell'esecuzione senza errori durante tali riavvii.

Se le istantanee sono abilitate per l'applicazione e configurate utilizzando l'applicazione, il servizio fornisce la semantica di elaborazione esatta ApplicationRestoreConfigurationdurante gli aggiornamenti dell'applicazione o durante il ridimensionamento o la manutenzione relativi al servizio.

Configura il checkpoint in Managed Service for Apache Flink

È possibile configurare il comportamento di creazione di checkpoint dell'applicazione. Puoi definire se mantenere lo stato di creazione di checkpoint, con quale frequenza salvare lo stato dell'applicazione nei checkpoint e l'intervallo minimo tra la fine di un'operazione di creazione checkpoint e l'inizio di un'altra.

È possibile configurare le seguenti impostazioni utilizzando le operazioni o: CreateApplicationUpdateApplicationAPI

  • CheckpointingEnabled: indica se la creazione di checkpoint è abilitata nell'applicazione.

  • CheckpointInterval: contiene il tempo in millisecondi tra le operazioni di checkpoint (persistenza).

  • ConfigurationType: imposta questo valore su DEFAULT per utilizzare il comportamento di creazione di checkpoint predefinito. Imposta questo valore su CUSTOM per configurare altri valori.

    Nota

    Il comportamento di checkpoint predefinito è il seguente:

    • CheckpointingEnabled: vero

    • CheckpointInterval: 60000

    • MinPauseBetweenCheckpoints: 5000

    Se ConfigurationTypeè impostato suDEFAULT, verranno utilizzati i valori precedenti, anche se sono impostati su altri valori utilizzando o impostando i valori nel codice dell'applicazione. AWS Command Line Interface

    Nota

    A partire da Flink 1.15, il servizio gestito per Apache Flink utilizzerà stop-with-savepoint durante la creazione automatica di snapshot, ovvero per l'aggiornamento, il dimensionamento o l'arresto dell'applicazione.

  • MinPauseBetweenCheckpoints: il tempo minimo in millisecondi tra la fine di un'operazione di checkpoint e l'inizio di un'altra. L'impostazione di questo valore impedisce all'applicazione di continuare a creare checkpoint quando tale operazione richiede più tempo di quanto specificato dall'CheckpointInterval.

Consulta gli esempi di checkpoint API

Questa sezione include esempi di richieste di API azioni per la configurazione del checkpoint per un'applicazione. Per informazioni su come utilizzare un JSON file come input per un'APIazione, vedere. Codice di esempio dell'API Managed Service per Apache Flink

Configurare il checkpoint per una nuova applicazione

La seguente richiesta di esempio per l'operazione CreateApplication configura la creazione di checkpoint durante la creazione di un'applicazione:

{ "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 } } }

Disabilita il checkpoint per una nuova applicazione

La seguente richiesta di esempio per l'operazione CreateApplication disabilita la creazione di checkpoint durante la creazione di un'applicazione:

{ "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" } } }

Configura il checkpoint per un'applicazione esistente

La seguente richiesta di esempio per l'operazione UpdateApplication configura la creazione di checkpoint per un'applicazione esistente:

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

Disabilita il checkpoint per un'applicazione esistente

La seguente richiesta di esempio per l'operazione UpdateApplication disabilita la creazione di checkpoint per un'applicazione esistente:

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