Amazon Managed Service para Apache Flink Amazon (Amazon MSF) se denominaba anteriormente Amazon Kinesis Data Analytics para Apache Flink.
Implementación de tolerancia a errores en Managed Service para Apache Flink
Los puntos de control son el método que se utiliza para implementar la tolerancia a errores en Amazon Managed Service para Apache Flink. Un punto de control es una copia de seguridad actualizada de una aplicación en ejecución que se utiliza para recuperarse inmediatamente de una interrupción inesperada de la aplicación o de una conmutación por error.
Para obtener más información sobre los puntos de control en las aplicaciones de Apache Flink, consulte Checkpoints
Una instantánea es una copia de seguridad del estado de la aplicación creada y gestionada manualmente. Las instantáneas permiten restaurar la aplicación a un estado anterior mediante una llamada a UpdateApplication. Para obtener más información, consulte Administración de copias de seguridad de aplicaciones con instantáneas.
Si la aplicación tiene habilitados los puntos de control, el servicio ofrece tolerancia a errores al crear y cargar copias de seguridad de los datos de la aplicación en caso de que la aplicación se reinicie inesperadamente. Estos reinicios inesperados de las aplicaciones pueden deberse a reinicios inesperados de trabajos, errores en las instancias, etc. Esto proporciona a la aplicación la misma semántica que cuando se ejecuta sin errores durante estos reinicios.
Si las instantáneas están habilitadas para la aplicación y se configuran mediante la configuración ApplicationRestoreConfiguration de la aplicación, el servicio proporciona una semántica de procesamiento de una sola vez durante las actualizaciones de la aplicación o durante el escalado o el mantenimiento relacionados con el servicio.
Configuración de los puntos de control en Managed Service para Apache Flink
Puede configurar el comportamiento de los puntos de control de la aplicación. Puede definir si mantiene el estado de los puntos de control, con qué frecuencia guarda su estado en los puntos de control y el intervalo mínimo entre el final de una operación de punto de control y el comienzo de otra.
Los siguientes ajustes se configuran mediante las operaciones de la API CreateApplication o UpdateApplication:
-
CheckpointingEnabled: indica si los puntos de control están habilitados en la aplicación. -
CheckpointInterval: contiene el tiempo en milisegundos entre las operaciones de los puntos de control (persistencia). -
ConfigurationType: establezca este valor enDEFAULTpara utilizar el comportamiento predeterminado de los puntos de control. Establezca este valor enCUSTOMpara configurar otros valores.nota
El comportamiento predeterminado de los puntos de control es el siguiente:
CheckpointingEnabled: true
CheckpointInterval: 60000
MinPauseBetweenCheckpoints: 5000
Si ConfigurationType se establece en
DEFAULT, se utilizarán los valores anteriores, aunque se establezcan en otros valores utilizando la AWS Command Line Interface o estableciendo los valores en el código de la aplicación.nota
A partir de la versión 1.15 de Flink, Managed Service para Apache Flink utilizará
stop-with-savepointdurante la creación automática de instantáneas, es decir, durante la actualización, el escalado o la detención de la aplicación. -
MinPauseBetweenCheckpoints: el tiempo mínimo en milisegundos entre el final de una operación de punto de control y el inicio de otra. Establecer este valor impide que la aplicación realice un punto de control de forma continua cuando una operación de punto de control tarda más deCheckpointInterval.
Revisión de ejemplos de la API de puntos de control
En esta sección se incluyen ejemplos de solicitudes de acciones de API para configurar los puntos de control de una aplicación. Para obtener información sobre cómo utilizar un archivo JSON como entrada para una acción de API, consulte Ejemplo de código de API de Managed Service para Apache Flink.
Configuración de puntos de control para una nueva aplicación
La siguiente solicitud de ejemplo de la acción CreateApplication configura los puntos de control al crear una aplicación:
{ "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 } } }
Deshabilitación de los puntos de control para una nueva aplicación
La siguiente solicitud de ejemplo de la acción CreateApplication deshabilita los puntos de control al crear una aplicación:
{ "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" } } }
Configuración de los puntos de control para una aplicación existente
La siguiente solicitud de ejemplo de la acción UpdateApplication configura los puntos de control para una aplicación existente:
{ "ApplicationName": "MyApplication", "ApplicationConfigurationUpdate": { "FlinkApplicationConfigurationUpdate": { "CheckpointConfigurationUpdate": { "CheckpointingEnabledUpdate": true, "CheckpointIntervalUpdate": 20000, "ConfigurationTypeUpdate": "CUSTOM", "MinPauseBetweenCheckpointsUpdate": 10000 } } } }
Deshabilitación de los puntos de control para una aplicación existente
La siguiente solicitud de ejemplo de la acción UpdateApplication deshabilita los puntos de control para una aplicación existente:
{ "ApplicationName": "MyApplication", "ApplicationConfigurationUpdate": { "FlinkApplicationConfigurationUpdate": { "CheckpointConfigurationUpdate": { "CheckpointingEnabledUpdate": false, "CheckpointIntervalUpdate": 20000, "ConfigurationTypeUpdate": "CUSTOM", "MinPauseBetweenCheckpointsUpdate": 10000 } } } }