Solução de problemas de produtores do 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á.

Solução de problemas de produtores do Amazon Kinesis Data Streams

As seções a seguir oferecem soluções para alguns problemas comuns que você pode encontrar ao trabalhar com produtores do Amazon Kinesis Data Streams.

Aplicativo produtor está gravando a uma taxa menor que a esperada

Os motivos mais comuns para a throughput de gravação ser mais lenta do que o esperado são os seguintes:

Limites de serviço excedidos

Para descobrir se os limites de serviço estão sendo excedidos, verifique se o produtor está lançando exceções de throughput a partir do serviço e valide quais operações da API estão sendo aceleradas. Lembre-se de que há limites diferentes de acordo com a chamada, consulte Cotas e limites. Por exemplo, além dos limites de nível de estilhaço para gravações e leituras que são mais comumente conhecidas, há limites de nível de stream a seguir:

As operações CreateStream, DeleteStream, ListStreams, GetShardIterator e MergeShards são limitadas a 5 chamadas por segundo. A operação DescribeStream é limitada a 10 chamadas por segundo. A operação DescribeStreamSummary é limitada a 20 chamadas por segundo.

Se essas chamadas não forem o problema, selecione uma chave de partição que permita distribuir operações put uniformemente em todos os estilhaços e não tenha uma determinada chave de partição que esteja colidindo com os limites de serviço quando as restantes não estão. Isso requer que você meça a throughput de pico e leve em conta o número de estilhaços no seu stream. Para obter mais informações sobre o gerenciamento de streams, consulte Criar e gerenciar streamings.

dica

Lembre-se de arredondar para o kilobyte mais próximo nos cálculos de controle de utilização da throughput ao usar a operação de um único registro PutRecord, enquanto a operação de vários registros PutRecords é arredondada na soma cumulativa dos registros em cada chamada. Por exemplo, uma solicitação PutRecords com 600 registros com tamanho de 1,1 KB não serão aceleradas.

Otimização do produtor

Antes de começar a otimizar o produtor, há algumas tarefas importantes a serem concluídas. Primeiro, identifique sua throughput de pico desejada em termos de tamanho do registro e registros por segundo. Em seguida, descarte a capacidade de stream conforme o fator de limitação (Limites de serviço excedidos). Se você excluiu a capacidade de stream, use as seguintes dicas de solução de problemas e diretrizes de otimização para os dois tipos comuns de produtores.

Produtor grande

Um grande produtor normalmente é executado em um servidor on-premises ou em uma instância do Amazon EC2. Os clientes que precisam de uma throughput mais alta de um grande produtor normalmente se preocupam com a latência por registro. As estratégias para lidar com a latência incluem os casos a seguir. Se o cliente puder criar microlotes ou armazenar registros em buffer, use a Kinesis Producer Library (que tem lógica de agregação avançada), a operação de vários registros PutRecords ou agregue registros em um arquivo maior antes de usar a operação de um só registro PutRecord. Se não for possível criar microlotes ou armazenar registros em buffer, use vários threads para gravar no serviço Kinesis Data Streams ao mesmo tempo. O AWS SDK for Java e outros SDKs incluem clientes assíncronos que podem fazer isso com muito pouco código.

Produtor pequeno

Um pequeno produtor geralmente é um aplicativo móvel, dispositivo IoT ou cliente web. No caso de aplicativos móveis, recomendamos usar a operação PutRecords ou o Kinesis Recorder nos AWS Mobile SDKs. Para obter mais informações, consulte os guias de conceitos básicos do AWS Mobile SDK for Android e do AWS Mobile SDK for iOS. Aplicativos móveis devem lidar com conexões intermitentes inerentemente e precisam de algum tipo de alocação em lote, como PutRecords. Se você não for capaz de alocar em lote por algum motivo, consulte as informações sobre Grande produtor acima. Se o seu produtor é um navegador, a quantidade de dados que está sendo gerada geralmente é muito pequena. No entanto, você está colocando as operações put no caminho crítico do aplicativo, o que não recomendamos.

Erro de permissão de chave mestra do KMS não autorizada

Esse erro ocorre quando um aplicativo produtor grava em um stream criptografado sem permissões na chave mestra do KMS. Para atribuir permissões a uma aplicação para que acesse uma chave do KMS, consulte Using Key Policies in AWS KMS e Using IAM Policies with AWS KMS.

Problemas comuns, perguntas e sugestões de solução de problemas para produtores