Usar o adaptador do DynamoDB Streams Kinesis Adapter para processar registros de fluxos
Usar o Amazon Kinesis Adapter é a forma recomendada para consumir fluxos do Amazon DynamoDB. A API do DynamoDB Streams é intencionalmente semelhante à do Kinesis Data Streams, um serviço para processamento em tempo real de dados de streaming em altíssima escala. Em ambos os serviços, os fluxos de dados são compostos de fragmentos, os quais são contêineres de registros de stream. Ambas as APIs de serviços contêm as operações ListStreams
, DescribeStream
, GetShards
e GetShardIterator
. (Embora essas ações do DynamoDB Streams sejam semelhantes às suas equivalentes no Kinesis Data Streams, elas não são 100% idênticas.)
Você pode escrever aplicações para Kinesis Data Streams usando a Kinesis Client Library (KCL). A KCL simplifica a codificação fornecendo abstrações úteis acima da API de baixo nível do Kinesis Data Streams. Para obter mais informações sobre a KCL, consulte Desenvolver consumidores usando a biblioteca de clientes do Kinesis no Guia do desenvolvedor do Amazon Kinesis Data Streams Developer Guide.
A versão atual do KCL 1.x com AWS SDK for Java v1.x continuará recebendo suporte total durante todo o seu ciclo de vida para garantir estabilidade e desempenho. Se você estiver usando o SDK existente, suas aplicações existentes que usam o AWS SDK for Java v1.x continuarão funcionando conforme o esperado durante o período de transição, de acordo com a política de manutenção de AWSSDKs e ferramentas.
Como um usuário do DynamoDB Streams, você pode utilizar os padrões de design encontrados no KCL para processar fragmentos e registros de fluxos do DynamoDB Streams. Para isso, você pode usar o DynamoDB Streams Kinesis Adapter. O Kinesis Adapter implementa a interface do Kinesis Data Streams para que a KCL possa ser usada para consumir e processar registros do DynamoDB Streams. Para obter instruções sobre como configurar e instalar o DynamoDB Streams Kinesis Adapter, consulte o repositório do GitHub
O diagrama a seguir mostra como essas bibliotecas interagem entre si.
Com o DynamoDB Streams Kinesis Adapter implementado, você pode começar a desenvolver a interface da KCL com as chamadas de API perfeitamente direcionadas no endpoint do DynamoDB Streams.
Quando a aplicação é iniciada, ela chama a KCL para instanciar um operador. Você deve fornecer ao operador informações de configuração da aplicação, como o descritor do fluxo e as credenciais da AWS, além do nome de uma classe de processador de registro que você fornecer. Como ele executa o código no processador de registro, o operador executa as seguintes tarefas:
-
Conecta-se ao stream
-
Enumera os fragmentos no fluxo
-
Coordena as associações do estilhaço com outros operadores (se houver)
-
Cria uma instância de um processador de registro para cada estilhaço que gerencia
-
Extrai registros do fluxo
-
Envia os registros ao processador de registros correspondente
-
Registros processados pelos pontos de verificação
-
Equilibra as associações de estilhaço-operador quando a contagem de instância de operadores muda
-
Equilibra as associações de fragmento-operador quando os fragmentos se dividem
nota
Para obter uma descrição dos conceitos da KCL aqui listados, consulte Desenvolver consumidores usando a biblioteca clientes do Kinesis no Guia do desenvolvedor do Amazon Kinesis Data Streams.
Para obter mais informações sobre como usar fluxos com o AWS Lambda, consulte DynamoDB Streams e acionadores do AWS Lambda