Desenvolver produtores usando a Amazon Kinesis Producer Library - 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á.

Desenvolver produtores usando a Amazon Kinesis Producer Library

Um produtor do Amazon Kinesis Data Streams é uma aplicação que coloca registros de dados de usuários em um fluxo de dados do Kinesis (o que também é chamado de ingestão de dados). A Kinesis Producer Library (KPL) simplifica o desenvolvimento de aplicações de produção permitindo que os desenvolvedores atinjam alta throughput de gravação para um fluxo de dados do Kinesis.

Você pode monitorar o KPL com a Amazon CloudWatch. Para ter mais informações, consulte Monitorar a Kinesis Producer Library com o Amazon CloudWatch.

nota

É recomendável que você atualize para a versão mais recente da KPL. A KPL é atualizada regularmente em versões que incluem os patches de dependência e segurança e as correções de bugs mais recentes, além de novos recursos compatíveis com versões anteriores. Para obter mais informações, consulte https://github.com/awslabs/ amazon-kinesis-producer /releases/.

Função da KPL

A KPL é uma easy-to-use biblioteca altamente configurável que ajuda você a gravar em um stream de dados do Kinesis. Ela atua como um intermediário entre o código da aplicação de produção e as ações das APIs do Kinesis Data Streams. A KPL executa as seguintes tarefas principais:

  • Grava em um ou mais fluxos de dados do Kinesis com um mecanismo automático e configurável de novas tentativas

  • Coleta registros e usa PutRecords para gravar vários registros em vários estilhaços por solicitação

  • Agrega registros de usuário para aumentar o tamanho da carga útil e melhorar a throughput

  • Integra-se perfeitamente à Kinesis Client Library (KCL) para desagregar registros em lote no consumidor

  • Envia CloudWatch métricas da Amazon em seu nome para fornecer visibilidade sobre o desempenho do produtor

Observe que a KPL é diferente da API do Kinesis Data Streams que está disponível nos SDKs daAWS. A API do Kinesis Data Streams ajuda você a gerenciar vários aspectos do Kinesis Data Streams (incluindo a criação de fluxos, a refragmentação e a colocação e obtenção de registros), enquanto a KPL fornece uma camada de abstração especificamente para a ingestão de dados. Para obter informações sobre a API do Kinesis Data Streams, consulte a Referência de APIs do Amazon Kinesis.

Vantagens do uso da KPL

A lista a seguir apresenta algumas das principais vantagens no uso da KPL para desenvolver produtores do Kinesis Data Streams.

A KPL pode ser usada em casos de uso síncronos ou assíncronos. Sugerimos usar o desempenho mais alto da interface assíncrona, a menos que haja um motivo específico para usar o comportamento síncrono. Para obter mais informações sobre esses dois casos de uso e o código de exemplo, consulte Gravar no fluxo de dados do Kinesis usando a KPL.

Benefícios de desempenho

A KPL pode ajudar a criar produtores de alta performance. Considere uma situação em que suas instâncias do Amazon EC2 atuam como proxy para coletar eventos de 100 bytes de centenas ou milhares de dispositivos de baixa potência e gravar registros em um fluxo de dados do Kinesis. Cada instância do EC2 precisa gravar milhares de eventos por segundo no seu streaming de dados. Para alcançar a throughput necessária, os produtores precisam implementar uma lógica complexa, como agrupamento em lotes ou multithreading, lógica de retentativa e desagregação de registros no lado do consumidor. A KPL executa todas essas tarefas para você.

Facilidade de uso do lado do consumidor

No caso de desenvolvedores no lado do consumidor usando a KCL em Java, a integração da KPL não requer esforço adicional. Ao recuperar um registro agregado do Kinesis Data Streams que consiste em vários registros de usuário da KPL, a KCL chama automaticamente a KPL para extrair registros do usuário individual e retorná-los ao mesmo usuário.

Desenvolvedores no lado do consumidor que não usam a KCL, mas usam a operação GetRecords da API diretamente, contam com uma biblioteca de Java da KPL disponível para extrair registros do usuário individual e retorná-los ao mesmo usuário.

Monitoramento de produtor

Você pode coletar, monitorar e analisar seus produtores do Kinesis Data Streams usando a CloudWatch Amazon e a KPL. O KPL emite taxa de transferência, erro e outras métricas CloudWatch em seu nome e é configurável para ser monitorado no nível de stream, fragmento ou produtor.

Arquitetura assíncrona

Como pode armazenar registros em buffer antes de enviá-los ao Kinesis Data Streams, a KPL não força a aplicação fazendo a chamada a bloquear e aguardar uma confirmação de que o registro chegou no servidor antes de continuar a execução. Uma chamada para colocar um registro na KPL sempre retorna imediatamente, sem esperar o registro ser enviado ou uma resposta ser recebida do servidor. Em vez disso, é criado um objeto Future que posteriormente recebe o resultado do envio do registro ao Kinesis Data Streams. Esse é o mesmo comportamento dos clientes assíncronos no SDK. AWS

Quando não usar a KPL

A KPL pode ter um atraso por processamento adicional de até RecordMaxBufferedTime dentro da biblioteca (configurável pelo usuário). Valores maiores de RecordMaxBufferedTime geram maiores eficiências de empacotamento e melhor desempenho. Aplicações que não toleram esse atraso adicional podem precisar usar o AWS SDK diretamente. Para obter mais informações sobre como usar o AWS SDK com o Kinesis Data Streams, consulte. Desenvolver produtores usando a API do Amazon Kinesis Data Streams com o AWS SDK for Java Para obter mais informações sobre RecordMaxBufferedTime e outras propriedades configuráveis pelo usuário da KPL, consulte Configurar a Kinesis Producer Library.