Tous les produits
Search
Centre de documentation

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

Dernière mise à jour :Sep 09, 2026

La réinitialisation d'un décalage de consommateur modifie la position de consommation actuelle d'un abonné. En cas d'échec du consommateur ou de consommation de données incorrectes, vous pouvez réinitialiser le décalage pour revenir à une position antérieure et redémarrer la consommation. Vous pouvez également déplacer la position de consommation vers le dernier décalage afin d'ignorer temporairement les messages accumulés.

Informations générales

ApsaraMQ for RocketMQ utilise les décalages des consommateurs pour gérer la progression de la consommation des messages. Après le traitement d'un message par un consommateur, celui-ci n'est pas immédiatement supprimé de la file d'attente. ApsaraMQ for RocketMQ conserve un enregistrement de consommation pour chaque groupe. Cet enregistrement, appelé décalage du consommateur, indique le décalage du dernier message consommé par les consommateurs du groupe pour un topic spécifique.

Lorsqu'un client consommateur se déconnecte puis se reconnecte, il reprend le traitement des messages en fonction de la progression de la consommation enregistrée côté serveur.

Si la consommation est anormale ou si le décalage actuel du consommateur est incorrect, ajustez la progression de la consommation en réinitialisant le décalage du consommateur.

ApsaraMQ for RocketMQ prend en charge la réinitialisation des décalages des consommateurs selon les méthodes suivantes :

  • Start Consumption from Latest Offset

    Les consommateurs traitant les messages d'un topic spécifique ignorent tous les messages accumulés et commencent la consommation à partir du dernier message envoyé après l'opération de réinitialisation.

  • Start Consumption from Offset Corresponding to Specified Point in Time

    • Les consommateurs traitent les messages à partir du décalage correspondant à l'heure spécifiée, que ces messages aient été précédemment consommés ou non.

    • La plage de temps sélectionnable s'étend entre les heures de création des messages les plus anciens et les plus récents stockés dans le topic.

    • Lors de la réinitialisation à un moment précis, le serveur identifie automatiquement le décalage du consommateur le plus proche.

Scénarios

  • Éliminer l'accumulation de messages : si les performances d'un système de consommation en aval sont insuffisantes ou si la vitesse de consommation est inférieure à la vitesse de production, de nombreux messages s'accumulent. Si vous pouvez ignorer ces messages accumulés, réinitialisez le décalage du consommateur à une position spécifiée. Cette action permet de contourner les messages accumulés et de réduire la charge de traitement du système en aval.

  • Rétroconsommation pour correction : si la logique métier de consommation est anormale et que les messages sont traités incorrectement, il peut être nécessaire de les reconsommer. Pour ce faire, réinitialisez le décalage du consommateur à une position historique afin d'effectuer une rétroconsommation.

Remarques d'utilisation

  • La réinitialisation d'un décalage de consommateur s'applique au décalage d'un groupe spécifié pour un topic cible. Elle n'affecte pas la progression de la consommation des autres groupes abonnés au même topic.

  • La réinitialisation des décalages des consommateurs n'est pas prise en charge en mode de consommation par diffusion (broadcasting).

  • ApsaraMQ for RocketMQ prend en charge la réinitialisation des décalages des consommateurs uniquement pour les groupes utilisant le protocole TCP, et non pour ceux utilisant le protocole HTTP.

  • La fonctionnalité de réinitialisation des décalages ne concerne que les messages visibles par les consommateurs. Elle ne peut pas réinitialiser les messages planifiés ni les messages en attente de nouvelle tentative.

  • Vous ne pouvez réinitialiser les décalages des consommateurs que lorsque ceux-ci sont en ligne.

Procédure

  1. Connectez-vous à la console ApsaraMQ for RocketMQ. Dans le volet de navigation de gauche, cliquez sur Instances.

  2. Dans la barre de navigation supérieure, sélectionnez une région, par exemple China (Hangzhou). Sur la page Instances, cliquez sur le nom de l'instance à gérer.

  3. Dans le volet de navigation de gauche, cliquez sur Groups. Ensuite, cliquez sur l'onglet TCP.

  4. Recherchez l'ID de groupe dont vous souhaitez réinitialiser le décalage. Dans la colonne Actions, cliquez sur More et sélectionnez Reset Consumer Offset dans le menu déroulant.

  5. Dans le panneau Reset Consumer Offset, sélectionnez le topic cible et la méthode de réinitialisation, puis cliquez sur OK.

    Avertissement

    Si vous sélectionnez Start Consumption from Latest Offset, tous les messages accumulés pour l'ID de groupe dans le topic spécifié sont effacés. Cette opération prend effet en environ 2 à 3 minutes. Ne la répétez pas. Pendant cette période, tous les consommateurs de l'application interrompent la consommation pendant 2 à 3 minutes. Faites preuve de prudence si votre activité est sensible à la latence.

    • Start Consumption from Latest Offset : si vous sélectionnez cette option, les consommateurs du groupe ignorent tous les messages accumulés dans le topic spécifié et commencent la consommation à partir du dernier message.

    • Start Consumption from Offset Corresponding to Specified Point in Time : si vous sélectionnez cette option, un sélecteur d'heure s'affiche. Spécifiez un moment précis. Les consommateurs commencent alors à consommer les messages envoyés après cet instant, qu'ils aient été précédemment consommés ou non.

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

FAQ

Que faire si je ne parviens pas à réinitialiser un décalage de consommateur avec les deux méthodes ?

  1. Vérifiez que vous utilisez la consommation en cluster. Le mode de consommation par diffusion (broadcasting) ne prend pas en charge la réinitialisation des décalages des consommateurs.

  2. Assurez-vous que le consommateur est en ligne. La réinitialisation des décalages n'est possible que lorsque les consommateurs sont en ligne.

  3. Vérifiez la version du SDK. Ce problème peut survenir si la version du SDK est obsolète. Nous vous recommandons de mettre à niveau le SDK vers la dernière version. Par exemple, la version du SDK client TCP pour Java doit être 1.8.0.Final ou ultérieure. Pour plus d'informations, consultez le Guide des versions.

Pourquoi certains messages ne sont-ils pas réinitialisés après avoir réinitialisé le décalage du consommateur pour ignorer les messages accumulés ?

La fonctionnalité de réinitialisation des décalages des consommateurs ne s'applique pas aux messages en état de nouvelle tentative. Par conséquent, un petit nombre de messages en attente de nouvelle tentative peuvent toujours être livrés après une réinitialisation.

Quel est le message le plus ancien que les consommateurs peuvent reconsommer en réinitialisant le décalage du consommateur ?

Lorsque vous réinitialisez un décalage à un moment précis, l'heure la plus ancienne que vous pouvez sélectionner correspond au moment où le message le plus ancien du topic a été stocké. Les instances de la série ApsaraMQ for RocketMQ 4.x stockent les messages pendant un maximum de 3 jours. Les messages datant de plus de 3 jours sont supprimés du topic.

Par conséquent, les consommateurs peuvent reconsommer des messages datant d'au plus 3 jours en réinitialisant le décalage du consommateur.

Références

En plus de la console, ApsaraMQ for RocketMQ vous permet de réinitialiser les décalages des consommateurs en appelant des opérations API.

Réinitialiser le décalage du consommateur de l'ID de groupe