Lorsque des messages s'accumulent dans un topic Kafka ou que l'utilisation du disque augmente brusquement, une visibilité au niveau des partitions est nécessaire pour identifier les partitions affectées et vérifier si les consommateurs suivent le rythme. L'état des partitions affiche le nombre de messages et la plage d'offsets pour chaque partition d'un topic, ce qui permet d'identifier rapidement les déséquilibres, les partitions inactives et l'augmentation du retard de consommation.
Concepts
| Concept | Description |
|---|---|
| Partition | Journal ordonné et en ajout seul au sein d'un topic. Chaque partition stocke les messages indépendamment et prend en charge la consommation parallèle. |
| Offset | Numéro unique et incrémentiel attribué à chaque message dans une partition, indiquant sa position. |
| Offset minimum | Le premier offset disponible dans une partition. Les messages antérieurs à cet offset ont été supprimés par la politique de rétention. |
| Offset maximum | Le dernier offset d'une partition, représentant le message écrit le plus récemment. |
| Retard de consommation | La différence entre l'offset maximum et le dernier offset validé par un groupe de consommateurs. Un retard important ou croissant signifie que les consommateurs ne parviennent pas à suivre l'arrivée des messages. |
Prérequis
Avant de commencer, assurez-vous d'avoir :
Un topic dans votre instance ApsaraMQ for Kafka. Pour plus d'informations, consultez Étape 3 : Créer des ressources
Consulter l'état des partitions dans la console
Connectez-vous à la console ApsaraMQ for Kafka.
Dans la section Resource Distribution de la page Overview, sélectionnez la région où se trouve l'instance ApsaraMQ for Kafka que vous souhaitez gérer.
Sur la page Instances, cliquez sur le nom de l'instance que vous souhaitez gérer.
Dans le volet de navigation de gauche, cliquez sur Topics.
-
Sur la page Topics, cliquez sur le nom du topic que vous souhaitez gérer. Sur la page Topic Details, cliquez sur l'onglet Partition Status.Name
Tableau 1. Paramètres inclus dans l'état des partitions
Parameter
Description
Partition ID
L'ID de la partition.
Minimum Offset
L'offset minimum de la partition.
Maximum Offset
L'offset maximum de la partition.
Messages
Le nombre de messages dans la partition.
Last Updated At
L'heure à laquelle le dernier message de la partition a été stocké.
-
Sur la page Topic Details, cliquez sur l'onglet Partition Status.
L'onglet affiche les paramètres suivants pour chaque partition :
Parameter Description Partition ID L'identifiant unique de la partition au sein du topic. Minimum Offset Le premier offset disponible dans la partition. Maximum Offset Le dernier offset de la partition. Messages Le nombre de messages actuellement stockés dans la partition. Calculé comme Maximum Offset moins Minimum Offset. Last Updated At L'horodatage du message le plus récent écrit dans la partition.
Diagnostiquer les problèmes courants
Utilisez les métriques d'état des partitions pour identifier les causes profondes de l'accumulation de messages, de la charge inégale et des topics obsolètes.
Distribution inégale des messages
Comparez le nombre de Messages entre les partitions. Si certaines partitions contiennent significativement plus de messages que d'autres, il est possible que les producteurs utilisent une clé de partition provoquant une distribution déséquilibrée. Pour confirmer cette hypothèse, vérifiez si le code de votre producteur spécifie une clé et si les valeurs de cette clé sont bien distribuées.
Pour plus de détails, consultez Distribution inégale des messages dans les partitions de topic
Retard de consommation
Le retard de consommation correspond à l'écart entre l'offset validé par un groupe de consommateurs et l'Maximum Offset de la partition. Pour calculer le retard :
Consumer lag = Maximum Offset - Consumer's committed offset
Un retard important et croissant signifie que les consommateurs ne parviennent pas à traiter les messages aussi vite que les producteurs les envoient. Les causes courantes incluent :
Consommateurs arrêtés : Un ou plusieurs consommateurs du groupe se sont arrêtés, transférant la charge aux consommateurs restants.
Débit insuffisant : La logique de traitement du consommateur est trop lente ou le groupe de consommateurs compte trop peu de membres par rapport au nombre de partitions.
Pour consulter l'offset validé pour chaque groupe de consommateurs, vérifiez la page Consumer Groups dans la console.
Utilisation élevée du disque
Recherchez les partitions présentant un nombre élevé de Messages. De grands volumes répartis sur plusieurs partitions augmentent la pression sur le disque du broker. Pour réduire l'utilisation :
Réduisez la période de rétention des messages pour le topic.
Mettez à l'échelle votre instance pour ajouter de la capacité de stockage.
Partitions obsolètes
Si l'horodatage Last Updated At est significativement plus ancien que prévu, la partition ne reçoit plus de messages. Vérifiez que vos producteurs sont actifs et ciblent le bon topic.
Si la colonne Last Updated At affiche 1970 ou --, consultez Pourquoi 1970 ou "--" s'affiche-t-il dans la colonne Last Updated At pour les partitions de topic ?
Opérations connexes
Pour redistribuer les partitions allouées de manière inégale parmi les topics qui utilisent le stockage cloud, consultez Rééquilibrer les partitions et rediriger le trafic.