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.
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 API CreateApplication
o UpdateApplication
:
-
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 suDEFAULT
per utilizzare il comportamento di creazione di checkpoint predefinito. Imposta questo valore suCUSTOM
per configurare altri valori.Nota
Il comportamento di checkpoint predefinito è il seguente:
CheckpointingEnabled: vero
CheckpointInterval: 60000
MinPauseBetweenCheckpoints: 5000
Se ConfigurationTypeè impostato su
DEFAULT
, verranno utilizzati i valori precedenti, anche se sono impostati su altri valori utilizzando o impostando i valori nel codice dell'applicazione. AWS Command Line InterfaceNota
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 API di checkpointing
Questa sezione include esempi di richieste di operazioni API per la configurazione della creazione di checkpoint per un'applicazione. Per informazioni su come utilizzare un file JSON come input per un'operazione API, consulta Codice di esempio dell'API Managed Service per Apache Flink.
Configura 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:::amzn-s3-demo-bucket", "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:::amzn-s3-demo-bucket", "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 } } } }