Resiliência no Amazon Kinesis Data Streams - Amazon Kinesis Data Streams

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á.

Resiliência no Amazon Kinesis Data Streams

A infraestrutura global da AWS é criada com base em regiões da AWS e zonas de disponibilidade da AWS. As regiões fornecem várias zonas de disponibilidade separadas e isoladas fisicamente, as quais são conectadas com baixa latência, alto throughput e redes altamente redundantes. Com as zonas de disponibilidade, é possível projetar e operar aplicações e bancos de dados que executam o failover automaticamente entre as zonas de disponibilidade sem interrupção. As zonas de disponibilidade são mais altamente disponíveis, tolerantes a falhas e escaláveis que uma ou várias infraestruturas de data center tradicionais.

Para obter mais informações sobre AWS regiões e zonas de disponibilidade, consulte AWS Infraestrutura Global.

Além da infraestrutura global da AWS, o Kinesis Data Streams oferece vários recursos para ajudar a atender às necessidades de resiliência de dados e backup.

Recuperação de desastres no Amazon Kinesis Data Streams

Quando você usa uma aplicação do Amazon Kinesis Data Streams para processar dados de um fluxo, podem ocorrer falhas nos seguintes níveis:

  • Um processador de registros pode falhar

  • Um operador pode falhar ou a instância do aplicativo que instanciou o operador pode falhar

  • Uma instância do EC2 que hospeda uma ou mais instâncias do aplicativo pode falhar

Falha do processador de registros

O trabalhador invoca métodos do processador de registros usando tarefas Java ExecutorService. Se uma tarefa falhar, o operador manterá o controle do estilhaço que o processador de registros estava processando. O operador inicia uma nova tarefa de processador de registros para processar esse estilhaço. Para ter mais informações, consulte Limitação de leitura.

Falha de operador ou aplicativo

Se um operador (ou uma instância) da aplicação do Amazon Kinesis Data Streams falhar, você deverá detectar e resolver a situação. Por exemplo, se o método Worker.run lançar uma exceção, você deverá identificá-la e tratá-la.

Se o próprio aplicativo falhar, você deverá detectar isso e reiniciá-lo. Quando o aplicativo é iniciado, ele instancia um novo operador, que, por sua vez, instancia novos processadores de registros aos quais são atribuídos estilhaços automaticamente para processamento. Podem ser os mesmos estilhaços que esses processadores de registros estavam processando antes da falha ou estilhaços novos para esses processadores.

Em uma situação em que o operador ou o aplicativo falha, a falha não é detectada e há outras instâncias do aplicativo sendo executadas em outras instâncias do EC2, os operadores nessas outras instâncias lidam com a falha. Eles criam processadores de registro adicionais para processar os estilhaços que não estão mais sendo processados pelo operador com falha. A carga nessas outras instâncias do EC2 aumenta de forma correspondente.

O cenário descrito aqui pressupõe que, embora o operador ou a aplicação tenha falhado, a instância do EC2 que hospeda o recurso ainda está em execução e, portanto, não é reiniciada por um grupo do Auto Scaling.

Falha na instância do Amazon EC2

Recomendamos que você execute as instâncias do EC2 referentes a sua aplicação em um grupo do Auto Scaling. Dessa forma, se uma das instâncias do EC2 falhar, o grupo do Auto Scaling iniciará automaticamente uma nova instância para substituí-la. Você deve configurar as instâncias para iniciar a aplicação do Amazon Kinesis Data Streams na inicialização.