Por que estou enfrentando alto atraso do consumidor no meu cluster do Amazon MSK?

4 minuto de leitura
0

Quero solucionar o atraso do consumidor no meu cluster do Amazon Managed Streaming for Apache Kafka (Amazon MSK).

Resolução

Pré-requisito

Execute o comando a seguir para usar as métricas do Amazon CloudWatch para determinar o atraso do consumidor:

./kafka-consumer-groups.sh --bootstrap-server <broker endpoints> --group <groupid> --describe --command-config <properties>

Observação: substitua <broker endpoints> pelos seus endpoints do seu agente, <groupid> pelo seu ID de grupo e <properties> pelas suas propriedades. 

Solucionar problemas comuns relacionados ao atraso do consumidor

Verifique a proporção entre o consumidor e a partição: Cada consumidor em um grupo de consumidores lê um subconjunto de partições com base nos consumidores disponíveis nesse grupo. Se cada consumidor consumir de várias partições, ele poderá processar grandes quantidades de dados e causar um atraso.

Sempre que possível, mantenha a relação consumidor/partição próxima de 1:1. Se o atraso persistir, aumente o número de partições e consumidores.

Identifique o valor atípico: Um valor atípico pode causar atraso no consumidor. Verifique se uma partição de consumidores contribui significativamente mais do que as outras no grupo de consumidores. Identifique a origem do problema para aplicar a solução apropriada. Como opção final, reinicie a aplicação.

Verifique o uso de recursos no host do consumidor: Monitore os recursos nas aplicações de consumidor para ver se há falta de recursos. Consumidores lentos levam a um processamento lento de mensagens e resultam em atraso do consumidor.

Confira o reequilíbrio do grupo de consumidores: Durante o reequilíbrio de um grupo de consumidores, todas as atribuições de partições de consumidores são revogadas. Como resultado, os consumidores param de ler o tópico, e isso cria um aumento no atraso. Para mais informações, consulte Como solucionar problemas de rebalanceamento contínuo do meu grupo de consumidores?

Avalie a configuração do consumidor: O atraso do consumidor pode ocorrer quando o produtor escreve mais rápido do que o que o consumidor pode ler. Para ler os dados assim que eles forem produzidos, ajuste fetch.min.bytes e fetch.partition.min.bytes na configuração do consumidor. As propriedades max.poll.interval.ms e max.poll.records podem afetar a frequência com que o consumidor confirma seu offset e quantas mensagens ele busca de cada vez. Ajuste essas configurações para ajudar a reduzir o atraso do consumidor.

Gerencie o tamanho da mensagem: Mensagens grandes podem causar atraso do consumidor, especialmente se a sua aplicação para consumidores estiver processando mensagens lentamente. Aumente o número de instâncias de consumidores para lidar com a workload.

Revise o design da sua aplicação: O design da sua aplicação para consumidores pode afetar o atraso do consumidor. Verifique se você projetou sua aplicação para lidar com o volume de mensagens que está processando. Aumentar a escala verticalmente da sua aplicação ou otimize sua lógica de processamento.

Monitore o uso de recursos dos agentes: Monitore o uso da CPU nos agentes para verificar se eles estão sobrecarregados, resultando em um aumento no atraso. Para mais informações sobre como solucionar o alto uso da CPU, consulte Como posso solucionar o alto uso da CPU em um ou mais agentes em um cluster do Amazon MSK?

Otimize o cluster para a workload: Verifique se os agentes do Kafka no seu cluster do MSK estão configurados e otimizados para sua workload. Certifique-se de que suas partições de tópicos sejam distribuídas uniformemente entre seus agentes. Confirme se seu fator de replicação está definido adequadamente.

Determine a latência da rede: A alta latência da rede entre um consumidor e o cluster MSK pode resultar em um alto atraso do consumidor. Verifique a conexão de rede entre sua aplicação de consumo e seu cluster do MSK. Se a conexão estiver lenta, aproxime sua aplicação de consumidor dos agentes do Kafka. Ou otimize sua configuração de rede.

AWS OFICIAL
AWS OFICIALAtualizada há um ano