Tous les produits
Search
Centre de documentation

ApsaraMQ for Kafka:Why do partitions in the same consumer group show different consumption progress?

Dernière mise à jour :Aug 11, 2026

Les consommateurs d'un même groupe consomment les messages à des vitesses différentes selon les partitions : certaines accusent du retard par rapport aux autres. Ce phénomène survient généralement lorsque le nombre de partitions n'est pas divisible par le nombre de consommateurs, ce qui entraîne une répartition déséquilibrée de la charge de travail.

Diagnostiquer le problème

  1. Connectez-vous à la console ApsaraMQ for Kafka.

  2. Sur la page Groups, cliquez sur le nom du groupe cible.

  3. Sur la page Group Details, cliquez sur l'onglet Consumer Status.

  4. Dans la colonne Actions du sujet cible, cliquez sur Consumer Details.

  5. Comparez les valeurs Maximum Offset entre les partitions. Une partition dont la valeur Maximum Offset est nettement plus élevée a reçu les messages du producteur plus tôt, ce qui indique une progression de consommation inégale.

Cause racine

ApsaraMQ for Kafka attribue les partitions aux consommateurs d'un groupe de manière aussi équitable que possible. Lorsque le nombre de partitions est divisible par le nombre de consommateurs, chaque consommateur gère le même nombre de partitions. Dans le cas contraire, certains consommateurs reçoivent davantage de partitions que d'autres et traitent les messages plus lentement.

Exemple : Un sujet comporte 12 partitions et un groupe de consommateurs compte 5 consommateurs. Les partitions sont réparties comme suit :

Consumer Assigned partitions
Consumer 1 3
Consumer 2 3
Consumer 3 2
Consumer 4 2
Consumer 5 2

Si les cinq consommateurs disposent de la même capacité de traitement, Consumer 1 et Consumer 2 accusent du retard car ils gèrent 50 % de partitions en plus que les autres.

Remarque

Le nombre de partitions par défaut est de 12 pour les instances ApsaraMQ for Kafka en abonnement et en paiement à l'utilisation, et de 3 pour les instances serverless.

Solution

Aligner le nombre de partitions sur le nombre de consommateurs

Assurez-vous que le nombre de partitions est divisible par le nombre de consommateurs.

Partition count Consumer count options (even distribution)
12 (default) 1, 2, 3, 4, 6, or 12
3 (serverless default) 1 or 3

Par exemple, avec 12 partitions, utilisez 3, 4, 6 ou 12 consommateurs, et non 5, 7 ou 8.

Considérations supplémentaires

  • Capacité de traitement inégale : Même avec un ratio partitions/consommateurs divisible, un retard peut apparaître si les vitesses de traitement diffèrent d'un consommateur à l'autre, par exemple en raison de la latence réseau, de contraintes de ressources ou de dépendances aval lentes. Surveillez le débit par consommateur pour identifier les goulets d'étranglement.

  • Surveiller le décalage du groupe de consommateurs : Suivez la métrique de décalage du groupe de consommateurs (la différence entre le dernier offset produit et l'offset validé par le consommateur pour chaque partition) afin de détecter proactivement les déséquilibres.