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. As regiões 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, você pode 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 regiões e zonas de disponibilidade da AWS, consulte Infraestrutura global da AWS.

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

Recuperação de desastres no Amazon Kinesis Data Streams

A falha pode ocorrer nos seguintes níveis quando você usa um aplicativo Amazon Kinesis Data Streams para processar dados de um stream:

  • 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 de processador de registros usando ExecutorServicetarefas Java. 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 obter mais informações, consulteLimitação de leitura

Falha de operador ou aplicativo

Se um funcionário — ou uma instância do aplicativo Amazon Kinesis Data Streams — falhar, você deve detectar e lidar com 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 trabalhador ou o aplicativo tenha falhado, a instância de hospedagem do EC2 ainda está em execução e, portanto, não foi reiniciada por um grupo de Auto Scaling.

Falha na instância do Amazon EC2

Recomendamos que você execute as instâncias do EC2 para seu aplicativo 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 seu aplicativo Amazon Kinesis Data Streams na inicialização.