Pourquoi suis-je confronté à un important décalage de consommation dans mon cluster Amazon MSK ?

Lecture de 4 minute(s)
0

Je souhaite résoudre le problème du décalage entre les consommateurs dans mon cluster Amazon Managed Streaming for Apache Kafka (Amazon MSK).

Résolution

Prérequis

Exécutez la commande suivante pour utiliser les métriques Amazon CloudWatch et déterminer le décalage entre consommateurs :

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

**Remarque :**Remplacez **<broker endpoints>**avec les points de terminaison de votre courtier, **<groupid>**avec votre ID de groupe, et **<properties>**avec vos propriétés.

Résoudre les problèmes courants de décalage entre consommateurs

Vérifiez le ratio consommateur-partition: Chaque consommateur d'un groupe de consommateurs lit à partir d'un sous-ensemble de partitions en fonction des consommateurs disponibles dans le groupe. Si chaque consommateur consomme plusieurs partitions, il peut traiter de grandes quantités de données et provoquer un décalage.

Dans la mesure du possible, maintenez le rapport consommateur-partition à un niveau proche de 1:1. Si le décalage persiste, augmentez le nombre de partitions et de consommateurs.

**Déterminez la valeur aberrante ** : Une valeur aberrante peut entraîner un décalage pour les consommateurs. Vérifiez si une partition de consommateurs contribue considérablement plus que les autres du groupe d’utilisateurs. Déterminez la source du problème pour appliquer la solution appropriée. Enfin, redémarrez l'application.

Vérifiez l'utilisation des ressources sur l'hôte consommateur : Surveillez les ressources des applications grand public pour détecter toute pénurie de ressources. La lenteur de la consommation entraîne un ralentissement du traitement des messages et entraîne un décalage entre consommateurs.

**Vérifiez le rééquilibrage des groupes de consommateurs **: Au cours du rééquilibrage d'un groupe de consommateurs, toutes les attributions de partition des consommateurs sont révoquées. En conséquence, les consommateurs cessent de lire le sujet, ce qui augmente le décalage. Pour plus d'informations, consultez l'article « Comment résoudre le problème du rééquilibrage continu de mon groupe de consommateurs ? »

**Évaluez les paramètres du consommateur ** : Le consommateur peut être en retard lorsque la vitesse d’écriture du producteur est supérieure à la vitesse de lecture du consommateur. Pour une lecture synchronisée des données produites, ajustez fetch.min.bytes et fetch.partition.min.bytes dans les paramètres du consommateur. Les propriétés max.poll.interval.ms et max.poll.records déterminent la fréquence de validation du décalage et la quantité de messages lus à la fois, par le consommateur. Ajustez ces paramètres pour réduire le décalage entre consommateurs.

Gérez la taille du message: Les messages de grande taille peuvent entraîner un décalage pour le consommateur, notamment si votre application consommateur traite les messages lentement. Augmentez le nombre d'instances consommateurs pour gérer la charge de travail.

Repensez votre application: La conception de votre application grand public peut avoir un impact sur le temps de latence des consommateurs. Vérifiez si votre application peut gérer le volume de messages que vous traitez. Développez votre application ou optimisez votre logique de traitement.

Surveillez l'utilisation des ressources des courtiers: Surveillez l'utilisation du processeur par les courtiers pour vérifier s’ils sont surchargés, cause de l’augmentation du décalage. Pour plus d'informations sur la résolution des problèmes d'utilisation élevée du processeur, lire : « Comment résoudre les problèmes d'utilisation élevée du processeur sur un ou plusieurs courtiers d'un cluster Amazon MSK ? »

Optimisez le cluster en fonction de la charge de travail: Vérifiez que les courtiers Kafka de votre cluster MSK sont configurés et optimisés pour supporter votre charge de travail. Assurez-vous que vos partitions thématiques sont réparties uniformément entre vos courtiers. Vérifiez que votre facteur de réplication est correctement défini.

**Déterminez la latence du réseau **: Une latence du réseau élevée entre un consommateur et le cluster MSK peut entraîner un décalage important pour le consommateur. Vérifiez la connexion réseau entre votre application grand public et votre cluster MSK. Si la connexion est lente, rapprochez votre application grand public des courtiers Kafka. À défaut, optimisez la configuration de votre réseau.

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a un an