Implementación de la tolerancia a errores en el servicio gestionado para Apache Flink - Managed Service para Apache Flink

Amazon Managed Service para Apache Flink Amazon se denominaba anteriormente Amazon Kinesis Data Analytics para Apache Flink.

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Implementación de la tolerancia a errores en el servicio gestionado 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 up-to-date copia de seguridad 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 los puntos de control en la documentación de Apache Flink.

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 mediante 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 con las de la aplicación, el servicio proporciona una semántica de ApplicationRestoreConfigurationprocesamiento 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 en DEFAULT para utilizar el comportamiento predeterminado de los puntos de control. Establezca este valor en CUSTOM para configurar otros valores.

    nota

    El comportamiento predeterminado de los puntos de control es el siguiente:

    • CheckpointingEnabled: verdadero

    • CheckpointInterval: 60000

    • MinPauseBetweenCheckpoints: 5000

    Si ConfigurationTypese establece enDEFAULT, se utilizarán los valores anteriores, incluso si se establecen en otros valores utilizando el código de la AWS Command Line Interface aplicación o configurando 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-savepoint durante 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 de CheckpointInterval.

Ejemplos de 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 Código de ejemplo de la API de Managed Service for Apache Flink.

Configure los 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:::mybucket", "FileKey":"myflink.jar", "ObjectVersion":"AbCdEfGhIjKlMnOpQrStUvWxYz12345" } }, "FlinkApplicationConfiguration": { "CheckpointConfiguration": { "CheckpointingEnabled": "true", "CheckpointInterval": 20000, "ConfigurationType": "CUSTOM", "MinPauseBetweenCheckpoints": 10000 } } }

Deshabilite 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:::mybucket", "FileKey":"myflink.jar", "ObjectVersion":"AbCdEfGhIjKlMnOpQrStUvWxYz12345" } }, "FlinkApplicationConfiguration": { "CheckpointConfiguration": { "CheckpointingEnabled": "false" } } }

Configure 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 } } } }

Deshabilite 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 } } } }