Todos los productos
Search
Centro de documentos

ApsaraMQ for RocketMQ:Almacenamiento y limpieza de mensajes

Última actualización: Sep 04, 2026

ApsaraMQ for RocketMQ conserva los mensajes durante un periodo configurable denominado duración de almacenamiento. Una vez que este periodo expira, los mensajes se limpian automáticamente, independientemente de si ya se consumieron.

Comprender el almacenamiento y la limpieza de mensajes le ayuda en los aspectos a continuación:

  • SLA de almacenamiento: La duración de almacenamiento define el periodo en el que los consumidores pueden obtener mensajes. Esto es relevante para escenarios que requieren periodos de consumo prolongados, gestión de acumulación de mensajes y recuperación ante desastres.

  • Evaluación de costos de almacenamiento: ApsaraMQ for RocketMQ almacena los mensajes en discos. Puede evaluar el espacio de almacenamiento y reservar recursos de almacenamiento con anticipación.

Funcionamiento

Los mensajes llegan al broker y se añaden a las colas en el orden en que se reciben. En teoría, la cantidad de mensajes que una cola puede almacenar es ilimitada. Sin embargo, dado que el espacio físico de almacenamiento de un broker es limitado, los mensajes no pueden conservarse de forma permanente. Cada mensaje tiene una duración de almacenamiento que comienza from el momento en que se produce y no depende de su estado de consumo.

  • Los mensajes dentro de la duración de almacenamiento se conservan.

  • Los mensajes que superan la duración de almacenamiento se limpian, sin importar si un consumidor los leyó o no.

Message storage

Las secciones a continuación explican tres aspectos de este mecanismo: por qué se usa la retención basada en tiempo, por qué la duración de almacenamiento se gestiona por nodo y por qué la retención no depende del estado de consumo.

Por qué se usa la retención basada en tiempo

La duración de almacenamiento, y no la cantidad de mensajes ni el tamaño total, determina cuánto tiempo se conservan los mensajes. La retención basada en tiempo proporciona un ciclo de vida predecible: cada mensaje sigue la misma regla de retención, sin importar el volumen del tema ni el throughput del consumidor.

La duración de almacenamiento también funciona como un Acuerdo de Nivel de Servicio (SLA) para los consumidores. Estos deben leer sus mensajes antes de que expire la duración de almacenamiento; de lo contrario, dichos mensajes dejarán de estar available.

Por qué la duración de almacenamiento se gestiona por nodo

La duración de almacenamiento se gestiona en el nivel de nodo de broker, no por tema ni por cola. Este diseño se deriva de la arquitectura interna de almacenamiento:

  • Organización de datos en dos niveles: ApsaraMQ for RocketMQ utiliza un método unificado de organización en dos niveles que consiste en colas de registros físicos y colas lógicas ligeras. Esta estructura permite operaciones de lectura y escritura ordenadas, alto throughput y alto rendimiento, pero no admite directivas de retención por tema o por cola.

  • Medio de almacenamiento compartido: Aunque se generen archivos de almacenamiento independientes para distintos temas o colas, todos comparten el mismo medio de almacenamiento subyacente. La retención por tema no puede garantizar el SLA si el clúster tiene poca capacidad available.

Para aplicar diferentes periodos de retención a distintas cargas de trabajo, despliéguelas en clústeres separados con configuraciones de duración de almacenamiento distintas.

La retención no depende del estado de consumo

Los mensajes pueden acumularse en una cola cuando los consumidores están inactivos o consumen lentamente. Conservar indefinidamente todos los mensajes no consumidos agotaría el almacenamiento y degradaría el rendimiento de lectura y escritura de nuevos mensajes.

ApsaraMQ for RocketMQ aplica una directiva de retención unificada: todos los mensajes siguen la misma duración de almacenamiento, se hayan consumido o no. Durante la duración de almacenamiento, los consumidores pueden leer un mensaje en cualquier momento o releerlo varios veces mediante la función Reset a consumer offset.

Retención garantizada en Alibaba Cloud

ApsaraMQ for RocketMQ está construido sobre el almacenamiento nativo de la nube de Alibaba Cloud, lo que desacopla la capacidad de almacenamiento de las restricciones del disco local. Todos los mensajes se conservan durante toda su duración de almacenamiento especificada. No se producen eliminaciones forzadas por falta de espacio en disco.

Nota: En Apache RocketMQ de código abierto, los mensajes se almacenan en discos locales. Cuando el espacio en disco escasea, el sistema elimina mensajes de forma forzada para mantener la estabilidad, incluso si la duración de almacenamiento configurada no ha expired. Esta limitación no aplica a ApsaraMQ for RocketMQ.

Notas de uso

Se recomienda especifique una duración de almacenamiento más larga según sus necesidades empresariales. Una mayor duración de almacenamiento le ofrece más margen para:

  • Recuperación de emergencia ante desastres

  • Solución de problemas de emergencia

  • Rastreo retrospectivo de mensajes

Pasos siguientes