ApsaraMQ for RocketMQ es un middleware de mensajería distribuida basado en el modelo de publicación-suscripción. Este servicio desacopla a los productores de los consumidores mediante la entrega asíncrona de mensajes, lo que lo hace adecuado para el desacoplamiento asíncrono y la nivelación de picos de carga en arquitecturas distribuidas.
Si su caso de uso requiere respuestas en tiempo real a través de enlaces síncronos, utilice una solución de llamada a procedimiento remoto (RPC). Seleccione un producto según sus escenarios de negocio y requisitos principales.
Flujo de los mensajes en el sistema
Cada mensaje pasa por tres etapas: producción, almacenamiento y consumo.

Un producer crea un mensaje y lo envía al servidor de ApsaraMQ for RocketMQ.
El servidor almacena el mensaje en un topic. Dentro del topic, el mensaje se agrega a una queue en orden secuencial.
Un consumer, que pertenece a un consumer group, se suscribe al topic y procesa el mensaje.
Conceptos clave
Producción
Productor: Entidad de ejecución ligera y anónima que crea y envía mensajes. Los productores suelen integrarse en la parte inicial de una cadena de llamadas de negocio.
Almacenamiento
Topic: Contenedor lógico para la transmisión y el almacenamiento de mensajes. Cada topic contiene varias colas que permiten el escalado horizontal.
Lite topic (LiteTopic): Recurso secundario bajo un topic de tipo Lite. Cada lite topic contiene una cola de forma predeterminada.
Queue (MessageQueue): Unidad fundamental de almacenamiento y transmisión de mensajes, similar a una partición en Kafka. Cada queue utiliza una estructura de cola infinita basada en flujos donde los mensajes se almacenan de forma secuencial.
Mensaje: Unidad más pequeña de transmisión de datos. Los mensajes son inmutables después de inicializarse, enviarse y almacenarse.
Consumo
Consumer group (ConsumerGroup): Agrupación lógica que gestiona varios consumidores. Los grupos de consumidores son independientes entre sí: cada grupo recibe y consume el conjunto completo de mensajes de los topics a los que se suscribe, por lo que los grupos nunca compiten ni comparten los mismos mensajes. Todos los consumidores de un grupo comparten la misma lógica y configuración de consumo, y trabajan en conjunto para procesar los mensajes de los topics suscritos. Esto permite el escalado horizontal de la capacidad de consumo.
Consumidor: Entidad de ejecución que recibe y procesa mensajes. Los consumidores suelen integrarse en la parte final de una cadena de llamadas de negocio. Cada consumidor debe pertenecer a un consumer group específico.
Suscripción: Conjunto de reglas del consumer group que rige el filtrado de mensajes, el comportamiento de reintentos y la restauración del progreso de consumo. Las suscripciones son persistentes; sobreviven a los reinicios del servidor y a las desconexiones del cliente. La excepción son las expresiones de filtro, que no se conservan.
Comunicación síncrona frente a asíncrona
Los servicios distribuidos se comunican mediante dos patrones principales: RPC síncrono y mensajería asíncrona. ApsaraMQ for RocketMQ utiliza mensajería asíncrona.
RPC síncrono

En el modelo de RPC síncrono, un emisor envía una solicitud directamente a un receptor, y este devuelve una respuesta de inmediato.
El término "síncrono" aquí se refiere al modelo de comunicación, no a la API de programación. Una llamada RPC puede utilizar un estilo de programación asíncrono y sin bloqueo, pero el modelo aún requiere una respuesta directa del endpoint destino dentro de un periodo especificado.
Mensajería asíncrona

En el modelo asíncrono, un emisor convierte una solicitud en un mensaje y lo envía al middleware de mensajería. La llamada se completa una vez que el mensaje se envía correctamente. El middleware entrega entonces el mensaje de forma fiable al servicio posterior y garantiza que se ejecute la tarea correspondiente.
|
Benefit |
How it helps |
|
Topología en estrella |
Tanto los servicios anteriores como los posteriores se conectan únicamente al middleware, lo que genera una topología sencilla y fácil de mantener. |
|
Servicios débilmente acoplados |
Los servicios anteriores y posteriores pueden actualizarse y modificarse de forma independiente. El middleware gestiona el almacenamiento en búfer y la recuperación asíncrona. |
|
Nivelación de picos de carga |
El middleware suele tener sólidas capacidades de almacenamiento en búfer y conformación de tráfico, lo que evita que los picos saturen los servicios posteriores. |
Mensajería punto a punto frente a publicación-suscripción
El middleware de mensajería utiliza uno de dos modelos de entrega. ApsaraMQ for RocketMQ emplea el modelo de publicación-suscripción.
|
Feature |
Point-to-point |
Publish-subscribe |
|
Identidad del consumidor |
Anónima: los consumidores comparten una sola cola sin identidad independiente |
Independiente: cada consumer group tiene su propia identidad |
|
Patrón de entrega |
Uno a uno: los consumidores compiten por los mensajes y cada mensaje lo procesa exactamente un consumidor |
Uno a muchos: cada consumer group recibe una copia de cada mensaje |
|
Escalabilidad |
Más sencilla de implementar |
Más extensible: admite varios consumidores posteriores independientes |
Modelo punto a punto

En el modelo punto a punto (también llamado mensajería basada en colas), la cola es el único identificador de comunicación entre los servicios anteriores y posteriores. Varios consumidores compiten por los mensajes en la cola, y cada mensaje lo procesa un solo consumidor.
Modelo de publicación-suscripción

En el modelo de publicación-suscripción, cada consumer group tiene una identidad independiente. Los mensajes del mismo topic pueden entregarse a varios grupos de consumidores, y cada grupo recibe una copia de todos los mensajes. Los distintos grupos de consumidores no se afectan entre sí.