Implemente a tolerância a falhas no Managed Service for Apache Flink - Managed Service for Apache Flink

Anteriormente, o Amazon Managed Service for Apache Flink era conhecido como Amazon Kinesis Data Analytics for Apache Flink.

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Implemente a tolerância a falhas no Managed Service for Apache Flink

O ponto de verificação é o método usado para implementar a tolerância a falhas no Amazon Managed Service for Apache Flink. Um ponto de verificação é um up-to-date backup de um aplicativo em execução que é usado para se recuperar imediatamente de uma interrupção ou failover inesperado do aplicativo.

Para obter detalhes sobre pontos de verificação em aplicativos Apache Flink, consulte Pontos de verificação na documentação do Apache Flink.

Um snapshot é um backup do estado do aplicativo criado e gerenciado manualmente. Os snapshots permitem que você restaure seu aplicativo para um estado anterior chamando UpdateApplication. Para obter mais informações, consulte Gerencie backups de aplicativos usando instantâneos.

Se o ponto de verificação estiver habilitado para seu aplicativo, o serviço fornecerá tolerância a falhas criando e carregando backups dos dados do aplicativo no caso de reinicializações inesperadas do aplicativo. Essas reinicializações inesperadas de aplicativos podem ser causadas por reinicializações inesperadas de tarefas, falhas de instância etc. Isso dá ao aplicativo a mesma semântica da execução sem falhas durante essas reinicializações.

Se os instantâneos estiverem habilitados para o aplicativo e configurados usando os do aplicativo ApplicationRestoreConfiguration, o serviço fornecerá uma semântica de processamento exatamente uma vez durante as atualizações do aplicativo ou durante a escalabilidade ou a manutenção relacionados ao serviço.

Configurar o ponto de verificação no Managed Service para Apache Flink

Você pode configurar o comportamento de ponto de verificação do seu aplicativo. Você pode definir se ele persiste no estado de ponto de verificação, com que frequência ele salva seu estado nos pontos de verificação e o intervalo mínimo entre o final de uma operação de ponto de verificação e o início de outra.

Você define as seguintes configurações usando as UpdateApplicationAPIoperações CreateApplicationou:

  • CheckpointingEnabled: indica se o ponto de verificação está ativado no aplicativo.

  • CheckpointInterval: contém o tempo em milissegundos entre as operações do ponto de verificação (persistência).

  • ConfigurationType: defina esse valor para DEFAULT para usar o comportamento do ponto de verificação padrão. Defina esse valor para CUSTOM para configurar outros valores.

    nota

    O comportamento padrão do ponto de verificação é o seguinte:

    • CheckpointingEnabled: verdadeiro

    • CheckpointInterval: 60000

    • MinPauseBetweenCheckpoints: 5000

    Se ConfigurationTypeestiver definido comoDEFAULT, os valores anteriores serão usados, mesmo que sejam definidos para outros valores usando o AWS Command Line Interface ou definindo os valores no código do aplicativo.

    nota

    Para o Flink 1.15 em diante, o Managed Service for Apache Flink usará stop-with-savepoint durante a criação automática de instantâneos, ou seja, a atualização, a escalabilidade ou a parada do aplicativo.

  • MinPauseBetweenCheckpoints: o tempo mínimo em milissegundos entre o final de uma operação de ponto de verificação e o início de outra. Definir esse valor impede o aplicativo de verificar continuamente quando uma operação de ponto de verificação levar mais tempo do que CheckpointInterval.

Analise exemplos de pontos de verificação API

Esta seção inclui exemplos de solicitações de API ações para configurar o ponto de verificação para um aplicativo. Para obter informações sobre como usar um JSON arquivo como entrada para uma API ação, consulteCódigo de exemplo do Managed Service for Apache Flink API.

Configurar o ponto de verificação para um novo aplicativo

O exemplo de solicitação a seguir para a ação CreateApplication configura o ponto de verificação quando você está criando um aplicativo:

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

Desativar o ponto de verificação para um novo aplicativo

O exemplo de solicitação a seguir para a ação CreateApplication desativa o ponto de verificação quando você está criando um aplicativo:

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

Configurar o ponto de verificação para um aplicativo existente

O exemplo de solicitação a seguir para a ação UpdateApplication configura o ponto de verificação para um aplicativo existente:

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

Desativar o ponto de verificação para um aplicativo existente

O exemplo de solicitação a seguir para a ação UpdateApplication desativa o ponto de verificação para um aplicativo existente:

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