Integrar a KPL com o código de produtor - Amazon Kinesis Data Streams

Integrar a KPL com o código de produtor

A Amazon Kinesis Producer Library (KPL) é executada em um processo separado e se comunica com o processo principal do usuário usando IPC. Essa arquitetura, às vezes chamada de microsserviço, é escolhida por dois motivos principais:

1) O processo do usuário não falhará mesmo que a KPL falhe

O processo pode ter tarefas não relacionadas ao Kinesis Data Streams e continuar em operação mesmo que a KPL falhe. Além disso, o processo de usuário pai pode reiniciar a KPL e recuperar um estado totalmente funcional (essa funcionalidade está nos wrappers oficiais).

Um exemplo é um servidor Web que envia métricas ao Kinesis Data Streams. O servidor pode continuar entregando páginas mesmo que a parte do Kinesis Data Streams tenha parado de funcionar. Portanto, causar uma falha em todo o servidor devido a um erro na KPL seria uma interrupção desnecessária.

2) Clientes arbitrários podem ser aceitos

Há sempre clientes que usam linguagens diferentes das oficialmente aceitas. Esses clientes também devem ser capazes de usar a KPL facilmente.

Matriz de uso recomendado

A matriz de uso a seguir lista as configurações recomendadas para diferentes usuários e indica se e como a KPL deve ser usada. Lembre-se de que, se a agregação estiver habilitada, será preciso usar a desagregação para extrair seus registros no lado do consumidor.

Linguagem do lado do produtor Linguagem do lado do consumidor Versão da KCL Lógica do ponto de verificação A KPL pode ser usada? Advertências
Tudo menos Java * * * Não N/D
Java Java Usa o Java SDK diretamente N/D Sim Se a agregação for usada, será necessário usar a biblioteca de desagregação fornecida após as chamadas a GetRecords.
Java Tudo menos Java Usa o SDK diretamente N/D Sim É preciso desabilitar a agregação.
Java Java 1.3.x N/D Sim É preciso desabilitar a agregação.
Java Java 1.4.x Chama o ponto de verificação sem nenhum argumento Sim Nenhum
Java Java 1.4.x Chama o ponto de verificação com um número sequencial explícito Sim Desative a agregação ou altere o código para usar números sequenciais estendidos para definir pontos de verificação.
Java Tudo menos Java 1.3.x + daemon de várias linguagens + wrapper específico de linguagem N/D Sim É preciso desabilitar a agregação.