Tous les produits
Search
Centre de documentation

ApsaraMQ for Kafka:Réinitialiser les décalages des consommateurs

Dernière mise à jour :Aug 10, 2026

Réinitialisez le décalage d'un consommateur pour relire des messages depuis une position antérieure ou un décalage de partition spécifique, ou passez à la dernière position pour ignorer l'accumulation de messages.

Prérequis

Arrêtez tous les clients consommateurs. ApsaraMQ for Kafka ne permet pas de réinitialiser les décalages des consommateurs actifs.

Important

Une fois le client consommateur arrêté, le broker ne le considère hors ligne qu'après l'écoulement de la période ConsumerConfig.SESSION_TIMEOUT_MS_CONFIG (par défaut : 10 000 ms).

Contexte

ApsaraMQ for Kafka propose les méthodes de réinitialisation suivantes :

  • Démarrer la consommation depuis le dernier décalage : le décalage est réinitialisé à la dernière position, ce qui ignore toute accumulation de messages.

  • Démarrer la consommation depuis un instant précis : le décalage est réinitialisé à un horodatage passé, correspondant au moment du stockage des messages. Tant que les messages figurent dans la période de rétention de Kafka (par défaut : 3 jours), cette option garantit la relecture de tous les messages émis à partir de l'horodatage spécifié.

    Remarque

    Avant de réinitialiser le décalage, arrêtez tous les clients consommateurs et attendez l'écoulement de la période ConsumerConfig.SESSION_TIMEOUT_MS_CONFIG (par défaut : 10 000 ms). Le broker doit identifier tous les consommateurs comme hors ligne avant que la réinitialisation ne prenne effet.

  • Réinitialiser les décalages des consommateurs par partition : seuls les décalages de partitions spécifiques sont réinitialisés, ce qui évite de relire les messages déjà traités dans les autres partitions.

Remarque

Cette opération modifie uniquement le décalage du consommateur. Elle ne supprime pas les messages accumulés.

Procédure

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

  2. Sur la page Overview, sélectionnez une région dans la section Resource Distribution.

  3. Sur la page Instances, cliquez sur le nom de l'instance cible.

  4. Dans le volet de navigation de gauche, cliquez sur Groups.

  5. Sur la page Groups, cliquez sur l'Group ID cible.

  6. Sur la page Group Details, cliquez sur Reset Consumer Offset.

  7. Dans le panneau Reset Consumer Offset for Group, consultez les Prerequisites et définissez la politique de réinitialisation.

    1. Configurez l'option Reset All Topics.

      • Cliquez sur Yes pour réinitialiser les décalages des consommateurs de tous les topics.

      • Cliquez sur No et saisissez le nom du topic à réinitialiser dans la zone de texte Topic.

    2. Configurez la Reset Method.

      • Cliquez sur Reset Consumer Offset to Latest Offset, puis sur OK.

      • Cliquez sur Reset Consumer Offset to Offset at Specified Point in Time. Dans le champ Point in Time, cliquez sur l'icône de calendrier Calendar et sélectionnez l'heure de début de la consommation. Cliquez ensuite sur OK.

      • Cliquez sur Reset Consumer Offsets by Partition. Dans la ligne de la partition cible, saisissez le décalage de départ dans la zone de texte Consumer Offset, puis cliquez sur OK.

  8. Dans la boîte de dialogue Note, confirmez les informations et cliquez sur OK.

FAQ

La réinitialisation des décalages des consommateurs résout-elle les échecs de consommation partielle des topics ?

La réinitialisation des décalages peut atténuer certains cas d'échecs de consommation partielle des topics. Avant d'intervenir, vérifiez si le problème provient de rééquilibrages fréquents ou d'une attribution anormale des partitions.

  • En cas de rééquilibrages fréquents, vérifiez la version du client Kafka et ajustez les paramètres session.timeout.ms et max.poll.interval.ms en fonction de votre charge de consommation.

  • Vérifiez que le groupe de consommateurs est bien abonné au topic cible.

Si la cause racine est bien une attribution anormale des partitions, la réinitialisation du décalage permet au groupe de consommateurs de relire les messages depuis la position correcte.

Puis-je poursuivre la consommation après avoir modifié l'ID du groupe de consommateurs Kafka ?

Oui. Après modification de l'ID du groupe de consommateurs, le nouveau groupe peut poursuivre la consommation. Le décalage de départ dépend toutefois du fait que le nouveau groupe démarre pour la première fois et de l'état actuel du topic. Avant de changer l'ID du groupe, identifiez la cause profonde des éventuels problèmes (problèmes réseau, expiration des heartbeats, etc.) afin d'éviter que le nouveau groupe ne rencontre les mêmes difficultés.

La suppression d'un groupe de consommateurs Kafka entraîne-t-elle celle des topics abonnés ?

Non. Les groupes de consommateurs et les topics sont des ressources indépendantes dans ApsaraMQ for Kafka. La suppression d'un groupe de consommateurs n'affecte que le groupe et ses décalages. Les données et la configuration des topics abonnés restent intactes.

Comment un groupe de consommateurs de type spark-kafka-source ou Lindorm-Spark soumet-il les décalages ?

  • spark-kafka-source : ce type de groupe prend en charge la soumission des décalages à Kafka. Vous pouvez contrôler la soumission automatique en définissant le paramètre enable.auto.commit. Vous pouvez aussi définir enable.auto.commit sur false et appeler manuellement la fonction commit(offsets) pour soumettre les décalages au moment opportun.

  • Lindorm-Spark : lors de la consommation de messages Kafka avec Lindorm-Spark, soumettez les décalages manuellement. Définissez enable.auto.commit sur false et appelez commit(offsets) une fois la logique de consommation terminée. Les décalages ne sont ainsi soumis qu'après le traitement des messages, ce qui évite les sauts de décalage ou les fausses alertes liés à la soumission automatique.

Documentation connexe