Tous les produits
Search
Centre de documentation

ApsaraMQ for RocketMQ:Message storage and cleanup

Dernière mise à jour :Aug 09, 2026

ApsaraMQ for RocketMQ conserve les messages pendant une période configurable appelée durée de stockage. Une fois cette période écoulée, les messages sont automatiquement supprimés, qu'ils aient ou non été consommés.

Comprendre le stockage et le nettoyage des messages vous aide à maîtriser les aspects suivants :

  • SLA de stockage : La durée de stockage définit la période pendant laquelle les consommateurs peuvent récupérer les messages. Cette notion est essentielle pour les scénarios nécessitant de longues périodes de consommation, la gestion de l'accumulation de messages ou la récupération après incident.

  • Évaluation des coûts de stockage : ApsaraMQ for RocketMQ stocke les messages sur disque. Vous pouvez ainsi évaluer l'espace nécessaire et réserver les ressources de stockage à l'avance.

Fonctionnement

Les messages arrivent au broker et sont ajoutés aux files d'attente dans l'ordre de leur réception. Théoriquement, le nombre de messages qu'une file d'attente peut stocker est illimité. Toutefois, comme l'espace de stockage physique d'un broker est limité, les messages ne peuvent pas être conservés indéfiniment. Chaque message possède une durée de stockage qui commence dès sa production et qui est indépendante de son statut de consommation.

  • Les messages dont la durée de stockage n'est pas expirée sont conservés.

  • Les messages dont la durée de stockage est dépassée sont supprimés, que le consommateur les ait lus ou non.

Message storage

Les sections suivantes détaillent trois aspects clés de ce mécanisme : pourquoi la rétention est basée sur le temps, pourquoi la durée de stockage est gérée par nœud et pourquoi la rétention ne dépend pas du statut de consommation.

Pourquoi une rétention basée sur le temps

La durée de stockage — et non le nombre de messages ou leur taille totale — détermine la période de conservation des données. La rétention temporelle offre un cycle de vie prévisible : chaque message suit la même règle de conservation, indépendamment du volume du topic ou du débit du consommateur.

La durée de stockage sert également de contrat de niveau de service (SLA) pour les consommateurs. Ces derniers doivent lire leurs messages avant l'expiration de cette durée, faute de quoi ceux-ci deviennent indisponibles.

Pourquoi la durée de stockage est gérée par nœud

La durée de stockage est gérée au niveau du nœud broker, et non par topic ou par file d'attente. Cette conception découle de l'architecture de stockage interne :

  • Organisation des données à deux niveaux : ApsaraMQ for RocketMQ utilise une méthode d'organisation unifiée à deux niveaux, composée de files journaux physiques et de files logiques légères. Cette structure garantit des opérations de lecture et d'écriture ordonnées, un débit élevé et des performances optimales, mais ne prend pas en charge les politiques de rétention par topic ou par file d'attente.

  • Support de stockage partagé : Même lorsque des fichiers de stockage indépendants sont générés pour différents topics ou files d'attente, ils partagent le même support de stockage sous-jacent. Une rétention par topic ne peut garantir le SLA si la capacité du cluster devient insuffisante.

Pour appliquer différentes périodes de rétention à diverses charges de travail, déployez-les sur des clusters distincts avec des configurations de durée de stockage différentes.

La rétention ne dépend pas du statut de consommation

Les messages peuvent s'accumuler dans une file d'attente lorsque les consommateurs sont inactifs ou consomment lentement. Conserver indéfiniment tous les messages non consommés épuiserait l'espace de stockage et dégraderait les performances de lecture/écriture pour les nouveaux messages.

ApsaraMQ for RocketMQ applique une politique de rétention unifiée : tous les messages suivent la même durée de stockage, qu'ils soient consommés ou non. Pendant cette durée, les consommateurs peuvent lire un message à tout moment ou le relire plusieurs fois en utilisant la fonctionnalité Réinitialiser un offset de consommateur.

Rétention garantie sur Alibaba Cloud

ApsaraMQ for RocketMQ s'appuie sur le stockage cloud-native d'Alibaba Cloud, qui dissocie la capacité de stockage des contraintes des disques locaux. Tous les messages sont conservés pendant toute la durée de stockage spécifiée. Aucune suppression forcée due à un espace disque insuffisant ne se produit.

Remarque : Dans Apache RocketMQ open source, les messages sont stockés sur des disques locaux. Lorsque l'espace disque vient à manquer, le système supprime les messages de force pour maintenir la stabilité, même si la durée de stockage configurée n'a pas expiré. Cette limitation ne s'applique pas à ApsaraMQ for RocketMQ.

Notes d'utilisation

Nous vous recommandons de spécifier une durée de stockage plus longue en fonction de vos besoins métier. Une durée plus étendue vous offre davantage de flexibilité pour :

  • La récupération d'urgence après incident

  • Le dépannage d'urgence

  • La rétroanalyse des messages

Étapes suivantes