Tous les produits
Search
Centre de documentation

ApsaraMQ for Kafka:Pourquoi les offsets de consommateur expirés sont-ils conservés ?

Dernière mise à jour :Aug 24, 2026

ApsaraMQ for Kafka supprime les offsets de consommateur une fois la période de conservation configurée dépassée. Toutefois, les offsets d'un Group actif sont conservés même après leur expiration. Cette rubrique explique les causes de ce comportement et propose des solutions.

Symptôme

Sur un serveur ApsaraMQ for Kafka 2.2.0 ApsaraMQ for Kafka, les offsets de consommateur d'un Group dépassent la période de conservation configurée, mais ne sont pas supprimés. Vous pouvez toujours consulter ces offsets dans la console : ouvrez la page Topic Details dans la console ApsaraMQ for Kafka, cliquez sur l'onglet Subscriptions et consultez les détails du consommateur (Consumer Details) pour le topic concerné.

Remarque

Le paramètre Consumer Offset Retention Period définit la durée maximale de conservation d'un offset de consommateur. Ce délai commence à compter du moment où l'offset est validé (committed). Les offsets dont la durée de conservation est dépassée sont supprimés. La suppression d'un offset ne réinitialise pas sa valeur à 0 ; elle signifie simplement qu'aucun offset n'existe plus. Chaque validation d'un offset de consommateur sur une partition de topic réinitialise le compteur de conservation de cet offset à 0. Pour plus d'informations, consultez la rubrique Modifier les configurations des messages.

Causes possibles

Conformément à la conception open source de Kafka, les offsets de consommateur d'un Group actif ne sont pas supprimés, même si leur période de conservation est dépassée.

Remarque

Un Group est considéré comme actif s'il contient un thread de consommateur utilisant la méthode subscribe (par opposition à la méthode assign).

Par exemple, vous créez un Group nommé TestGroup pour vous abonner au TopicA et vous validez des offsets de consommateur. En raison d'une évolution métier, vous vous désabonnez de TopicA pour vous abonner à TopicB. Le TestGroup reste actif, de sorte que les offsets de ce Group sur TopicA et TopicB ne sont pas supprimés.

Si vous vous désabonnez uniquement de TopicA sans vous abonner à TopicB, le TestGroup devient inactif. Les offsets de TestGroup sur TopicA sont alors supprimés une fois la période de conservation dépassée.

Solutions

Pour supprimer les offsets de consommateur expirés, appliquez l'une des méthodes suivantes :

  • Déconnectez tous les threads de consommateur utilisant la méthode subscribe afin de rendre le Group inactif, puis choisissez l'une des options ci-dessous selon vos besoins :

    • Attendez l'expiration des offsets de consommateur. Ils seront automatiquement supprimés.

    • Réinitialisez manuellement les offsets expirés à 0 par partition via la console.

    • Migrez vers un nouveau Group, rendez tous les threads de consommateur du Group d'origine inactifs et attendez l'expiration des offsets de ce dernier. Ils seront automatiquement supprimés.

    • Mettez à niveau la version du serveur vers la 2.6.0.

  • Maintenez la connexion du Group et désabonnez-vous des topics dont vous n'avez plus besoin. Même si le Group reste actif, les offsets des topics auxquels vous êtes désabonné seront effacés après dépassement de la période de conservation.

Après avoir appliqué l'une des méthodes précédentes, vérifiez le résultat dans la console. Ouvrez la page Topic Details, cliquez sur l'onglet Subscriptions et consultez les détails du consommateur (Consumer Details) du topic. Si les offsets ont été supprimés, aucun offset n'est présent. Si vous avez réinitialisé les offsets à 0, leur valeur reste à 0.

Références