Todos los productos
Search
Centro de documentos

ApsaraMQ for RocketMQ:Colas de mensajes

Última actualización: Sep 04, 2026

Una cola en ApsaraMQ for RocketMQ es un registro ordenado y de solo anexión que almacena y entrega mensajes. Constituye la unidad mínima de almacenamiento de mensajes. Los productores agregan los nuevos mensajes al final de la cola. Los consumidores leen desde cualquier posición mediante un desplazamiento (offset), que es un entero secuencial que indexa la posición de cada mensaje en el registro. El consumidor controla este desplazamiento y puede leer hacia adelante, saltar a la posición más reciente o restablecer un desplazamiento anterior para reprocesar el historial.

Cada topic (y lightweight topic) consta de una o más colas. Las colas proporcionan dos capacidades fundamentales:

  • Almacenamiento ordenado: los mensajes dentro de una cola conservan su orden de escritura. El mensaje más antiguo se encuentra al inicio y el más reciente al final. Los consumidores usan el desplazamiento para rastrear su posición de lectura.

  • Semántica de streaming: dado que el modelo de almacenamiento se basa en colas, los consumidores pueden leer cualquier rango de mensajes a partir de cualquier desplazamiento. Esto permite lecturas agregadas (consumo por lotes en un rango) y lecturas retrospectivas (reprocesamiento de mensajes anteriores). Los brokers tradicionales como RabbitMQ y ActiveMQ no admiten estas operaciones porque carecen de un modelo de almacenamiento basado en colas.

Relación entre colas y topics

El diagrama a continuación muestra cómo se integran las colas en el modelo de dominio de ApsaraMQ for RocketMQ:

Queue position in the domain model

Un topic es una agrupación lógica de mensajes. Las colas son los componentes físicos de almacenamiento dentro de un topic donde se persisten y leen los mensajes. Aunque todos los recursos de mensajes se gestionan en el nivel de topic y lightweight topic, las operaciones reales se ejecutan sobre las colas. Por ejemplo, cuando un productor envía un mensaje a un topic, el broker lo entrega a una de las colas del topic.

Todos los mensajes enviados correctamente se almacenan de forma duradera. En combinación con los acuses de recibo de los clientes productores y consumidores, esto proporciona una semántica de entrega de al menos una vez.

Las colas en ApsaraMQ for RocketMQ cumplen la misma función que las particiones en Apache Kafka. Si está familiarizado con las particiones de Kafka, el modelo de colas funciona de la misma manera.

Escalado horizontal

ApsaraMQ for RocketMQ escala horizontalmente mediante el ajuste del número de colas en un topic:

  • Escalado horizontal (scale out): agregue colas para distribuir la carga entre más nodos de servicio.

  • Reducción horizontal (scale in): elimine colas para consolidar recursos.

Permisos de lectura y escritura

Cada cola tiene una configuración de permisos que controla el acceso:

Valor

Permiso

Comportamiento

6

Lectura y escritura

Permite operaciones de lectura y escritura

4

Solo lectura

Permite operaciones de lectura únicamente para mensajes históricos; no admite nuevas escrituras

2

Solo escritura

Permite operaciones de escritura únicamente para mensajes nuevos; no admite lecturas

0

Sin acceso

Bloquea todas las operaciones de lectura y escritura

Cambiar los permisos de las colas es una operación de administración y mantenimiento. Evite modificarlos con frecuencia.

Restricciones en el número de colas

La cantidad de colas para cada topic o lightweight topic depende de los factores a continuación:

  • El tipo de mensaje

  • La región where reside la instancia

El sistema gestiona automáticamente el número de colas y este no se puede modificar.

Compatibilidad de versiones

La nomenclatura de las colas varía según la versión del servicio:

Versión

Formato de nombre de cola

Relación con los nodos

3.x y 4.x

Tripleta: {Topic Name}+{Broker ID}+{Queue ID}

Vinculada a un nodo físico

5.x

Cadena globalmente única asignada por el clúster

Desacoplada de los nodos físicos

Importante

Nunca codifique de forma rígida ni asuma un formato específico de nombre de cola en su aplicación. Los nombres de cola construidos manualmente fallarán tras una actualización de versión debido a los cambios en el esquema de nomenclatura.

Mejores prácticas para el dimensionamiento de colas

Mantenga un número bajo de colas

Use solo la cantidad de colas que requiera su carga de trabajo. El exceso de colas provoca dos problemas:

  • Inflación de metadatos: las métricas se recopilan en el nivel de cola. Un mayor número de colas implica más metadatos del plano de control por gestionar.

  • Desperdicio de recursos del cliente: las operaciones de lectura y escritura se ejecutan por cola. Las colas inactivas generan solicitudes de sondeo vacías que consumen recursos tanto del cliente como del servidor.

Cuándo agregar colas

Balanceo de carga de nodos físicos: después de agregar nodos a un clúster, cree colas en los nuevos nodos o migre las colas existentes para distribuir el tráfico de manera uniforme.

Throughput de mensajes ordenados (v4.x): en la versión 4.x del servicio, el orden de los mensajes se garantiza únicamente dentro de una sola cola, por lo que la cantidad de colas limita directamente la concurrencia de mensajes ordenados. Agregue colas solo cuando enfrente un cuello de botella en el rendimiento.

Mensajes no ordenados en v5.x (sin acción requerida): la versión 5.x del servicio admite balanceo de carga en el nivel de mensaje para los consumidores. Los mensajes dentro de la misma cola se distribuyen equitativamente entre todos los consumidores, de modo que la cantidad de colas no afecta la concurrencia de consumo. Para obtener más detalles, consulte Consumer load balancing.