Todos los productos
Search
Centro de documentos

ApsaraMQ for RocketMQ:Consumidores

Última actualización: Sep 04, 2026

Un consumidor es una aplicación cliente que se suscribe a temas y procesa mensajes de ApsaraMQ for RocketMQ. Los consumidores se conectan a los brokers, recuperan mensajes según sus suscripciones y los envían a su lógica de negocio para procesarlos.

Tres factores determinan el comportamiento de un consumidor:

  • Grupo de consumidores: Cada consumidor debe pertenecer a un consumer group. El grupo define configuraciones de comportamiento compartidas, como el orden de entrega y la política de reintentos, además de rastrear el progreso del consumo entre sus miembros.

  • Tipo de consumidor: Elija entre un consumidor push (entrega impulsada por el broker) y un consumidor simple (pull impulsado por la aplicación). Consulte Consumer types.

  • Configuración del lado del cliente: El número de hilos, la concurrencia y otras configuraciones locales controlan cómo el consumidor procesa los mensajes en el host de su aplicación.

Funcionamiento

El siguiente diagrama muestra la posición de los consumidores en el modelo de dominio de ApsaraMQ for RocketMQ.

Consumers in the domain model

  1. Los productores envían mensajes al broker de ApsaraMQ for RocketMQ.

  2. El broker almacena cada mensaje en la cola especificada por el tema de destino y conserva el orden de llegada.

  3. Los consumidores recuperan y procesan mensajes del broker según sus suscripciones.

Los consumidores del mismo consumer group comparten el conjunto completo de mensajes entregados a dicho grupo.

Atributos internos

Nombre del grupo de consumidores (obligatorio)

  • El nombre del consumer group al que pertenece este consumidor. Un consumidor hereda su orden de entrega y su política de reintentos de su consumer group.

  • Los grupos de consumidores son recursos lógicos. Créelos mediante la consola o la API antes de usarlos. Para conocer las reglas de nomenclatura y otras restricciones, consulte Usage limits.

ID de cliente (generado automáticamente)

  • Identificador único de cada instancia de cliente consumidor dentro de un clúster. El SDK de ApsaraMQ for RocketMQ genera este valor automáticamente. Los ID de cliente aparecen en los registros y son útiles para solucionar problemas, pero no se pueden modificar.

Lista de suscripciones predefinidas (recomendado)

  • Lista de temas y expresiones de filtro a los que se suscribe un consumidor. Especifique las suscripciones durante la inicialización del consumidor para que el broker valide los permisos y la disponibilidad de los temas desde el principio, en lugar de hacerlo después de iniciar la aplicación.

  • Si no se especifica ninguna suscripción durante la inicialización, o si los temas suscritos cambian en tiempo de ejecución, ApsaraMQ for RocketMQ realiza una validación dinámica que podría retrasar la detección de errores.

Message listener (solo consumidores push)

  • Interfaz de callback que el broker invoca para entregar mensajes a un consumidor push. Configure el message listener en el cliente consumidor.

  • Los consumidores simples recuperan mensajes explícitamente y no utilizan listeners. Para obtener más información, consulte Consumer types.

Restricciones de comportamiento

Todos los consumidores del mismo consumer group deben compartir configuraciones idénticas para:

Configuración

Descripción

Orden de entrega de mensajes

Determina si los mensajes se entregan de forma secuencial o concurrente

Política de reintentos de consumo

Define cómo se reintentan los mensajes con errores

Las configuraciones inconsistentes entre los consumidores del mismo grupo provocan un comportamiento de entrega impredecible. La aplicación de estas configuraciones depende de la versión del broker. Consulte la siguiente sección para obtener más detalles.

Compatibilidad de versiones

Comportamiento

Brokers 5.x

Brokers 3.x / 4.x

Dónde se definen el orden de entrega y la política de reintentos

En el consumer group (lado del servidor)

En cada cliente consumidor (API del lado del cliente)

Responsabilidad del desarrollador

No se requiere configuración del lado del cliente; los consumidores heredan la configuración del grupo

Establezca el orden de entrega y la política de reintentos en cada cliente consumidor para garantizar la consistencia en todo el grupo

Si utiliza una versión anterior del SDK para conectarse a un broker 5.x, el consumidor seguirá leyendo el orden de entrega y la política de reintentos desde la configuración de la API del lado del cliente en lugar de obtenerlos del consumer group.

Mejores prácticas

Inicialice un consumidor por grupo por proceso

Los consumidores de ApsaraMQ for RocketMQ utilizan un protocolo sin bloqueo que admite acceso concurrente y multiproceso. Una sola instancia de consumidor puede gestionar un alto rendimiento. En la mayoría de los casos, inicialice un consumidor por consumer group en cada proceso. Crear varias instancias de consumidor con la misma configuración dentro de un proceso desperdicia recursos sin mejorar el rendimiento.

Reutilice los consumidores en lugar de crearlos y destruirlos

Trate las instancias de consumidor como pools de conexiones de base de datos: créelas una vez y reutilícelas durante todo el ciclo de vida de la aplicación. Crear un nuevo consumidor para cada lote de mensajes y destruirlo después genera conexiones efímeras excesivas en el broker, lo que aumenta la carga del sistema innecesariamente.

Correcto: cree una vez, consuma en un bucle y apague al salir:

Consumer c = ConsumerBuilder.build();
for (int i = 0; i < n; i++) {
    Message m = c.receive();
    // process message
}
c.shutdown();

Incorrecto: crear y destruir dentro del bucle:

for (int i = 0; i < n; i++) {
    Consumer c = ConsumerBuilder.build();
    Message m = c.receive();
    // process message
    c.shutdown();
}

Pasos siguientes

  • Consumer groups: Aprenda cómo los grupos de consumidores gestionan la configuración de entrega compartida y rastrean el progreso del consumo.

  • Consumer types: Compare los consumidores push y los consumidores simples para decidir cuál se adapta mejor a su caso de uso.

  • Usage limits: Revise las reglas de nomenclatura, las cuotas y otras restricciones para los grupos de consumidores.