Tratar inicialização, desligamento e limitação - 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á.

Tratar inicialização, desligamento e limitação

Veja aqui algumas considerações adicionais para incorporar ao projeto do seu aplicativo do Amazon Kinesis Data Streams.

Inicializar produtores de dados e consumidores de dados

Por padrão, a KCL começa a ler registros da ponta do stream, que é o registro adicionado mais recentemente. Nessa configuração, se um aplicativo de produção de dados adicionar registros ao stream antes da execução de qualquer processador de registros de recebimento, os registros não serão lidos pelos processadores de registros após a inicialização.

Para alterar o comportamento dos processadores de registros para que eles sempre leiam dados a partir do início do stream, defina o seguinte valor no arquivo de propriedades do seu aplicativo Amazon Kinesis Data Streams:

initialPositionInStream = TRIM_HORIZON

Por padrão, o Amazon Kinesis Data Streams armazena todos os dados por 24 horas. Ele também suporta retenção prolongada de até 7 dias e a retenção de longo prazo de até 365 dias. Esse período é chamado de período de retenção. Definir a posição de início como TRIM_HORIZON inicia o processador de registros com os dados mais antigos no stream, conforme definido pelo período de retenção. Mesmo com a definição de TRIM_HORIZON, se um processador de registros iniciar após decorrido um tempo maior que o período de retenção, alguns dos registros no stream não estarão mais disponíveis. Por esse motivo, você deve sempre ter aplicativos de consumidor lendo do stream e usar a métrica GetRecords.IteratorAgeMilliseconds do CloudWatch para monitorar se os aplicativos estão acompanhando os dados recebidos.

Em alguns cenários, pode ser adequado aos processadores de registros perder os primeiros registros no stream. Por exemplo, você pode executar alguns registros iniciais pelo stream para testar se o stream está funcionandoend-to-endConforme o esperado. Depois de fazer essa verificação inicial, você inicia seus operadores e começa a colocar os dados de produção no stream.

Para obter mais informações sobre a configuração de TRIM_HORIZON, consulte Como usar iteradores de estilhaços.

Desligando um aplicativo do Amazon Kinesis Data Streams

Quando seu aplicativo Amazon Kinesis Data Streams tiver concluído a tarefa pretendida, você deverá desligá-lo encerrando as instâncias do EC2 em que está em execução. É possível encerrar as instâncias usando o AWS Management Console ou a AWS CLI.

Depois de desligar seu aplicativo Amazon Kinesis Data Streams, você deve excluir a tabela do Amazon DynamoDB do que a KCL usou para rastrear o estado do aplicativo.

Limitação de leitura

A taxa de transferência de um stream é provisionada no nível do estilhaço. Cada estilhaço tem uma taxa de transferência de leitura de até 5 transações por segundo para leituras, até uma taxa total de leitura de dados máxima de 2 MB por segundo. Se um aplicativo (ou grupo de aplicativos que opera no mesmo stream) tentar obter dados de um estilhaço a uma taxa mais rápida, o Kinesis Data Streams limitará as operações Get correspondentes.

Em um aplicativo do Amazon Kinesis Data Streams, se um processador de registros processar dados mais rapidamente do que o limite, como no caso de um failover, ocorrerá limitação. Como o KCL gerencia as interações entre o aplicativo e o Kinesis Data Streams, as exceções de limitação ocorrem no código KCL, e não no código do aplicativo. No entanto, como a KCL registra essas exceções, você as vê nos logs.

Se você achar que o seu aplicativo fica limitado de forma consistente, considere aumentar o número de estilhaços do stream.