Un grupo de consumidores es un conjunto de balanceo de carga formado por consumidores que comparten el mismo comportamiento de consumo. Al agregar consumidores a un grupo, se escala horizontalmente el procesamiento de mensajes y se habilita la recuperación ante desastres de alta disponibilidad.
Los grupos de consumidores son recursos lógicos, no procesos en ejecución. Cada consumidor se encarga del procesamiento real de los mensajes, pero el grupo define cómo se comportan esos consumidores: a qué se suscriben, en qué orden reciben los mensajes y qué sucede cuando falla el consumo.
Conceptos clave
|
Concepto |
Descripción |
|
Grupo de consumidores |
Agrupación lógica de consumidores que comparten el mismo comportamiento de consumo y distribuyen la carga del procesamiento de mensajes |
|
Suscripción |
Temas a los que se suscribe un grupo de consumidores, junto con las reglas de filtrado de mensajes correspondientes |
|
Orden de entrega |
Indica si el broker entrega los mensajes de forma secuencial (ordenada) o en paralelo (concurrente) |
|
Directiva de reintentos de consumo |
Reglas para reintentar mensajes con errores, incluido el número máximo de reintentos y el intervalo entre ellos |
|
Patrón de consumo |
Modo de consumo: |
|
Cola de mensajes muertos |
Cola que almacena los mensajes que siguen fallando después de agotar todos los reintentos. También es posible descartar los mensajes en lugar de enviarlos a esta cola. |
Funcionamiento
El diagrama a continuación muestra dónde se integran los grupos de consumidores en el flujo de mensajes de ApsaraMQ for RocketMQ:

Los productores envían mensajes al broker de ApsaraMQ for RocketMQ.
El broker almacena los mensajes en la cola especificada por el tema, según el orden de recepción.
Los consumidores de un grupo extraen y procesan los mensajes según las suscripciones del grupo.
Todos los consumidores del mismo grupo comparten tres comportamientos definidos en el nivel de grupo:
Suscripción: El broker gestiona las suscripciones en el nivel de grupo de consumidores. Cada consumidor registra dinámicamente su suscripción al conectarse, y el broker conserva esta información para rastrear el progreso del consumo. Para más información, consulte Subscriptions.
Orden de entrega: El broker entrega los mensajes a los consumidores en orden estricto o de manera concurrente. Esta configuración se establece en el nivel de grupo de consumidores y no se puede modificar después de crearlo. Para más información, consulte Ordered messages.
Directiva de reintentos de consumo: Cuando un consumidor no logra procesar un mensaje, el broker lo vuelve a entregar según la directiva de reintentos. La directiva define el número máximo de reintentos y el intervalo entre ellos. Los mensajes que siguen fallando tras agotar todos los reintentos se envían a una cola de mensajes muertos o se descartan. Para más información, consulte Consumption retries.
Atributos
Requisitos de consistencia
Todos los consumidores del mismo grupo deben usar configuraciones idénticas para:
Orden de entrega: debe ser ordenada o concurrente, nunca una mezcla de ambas.
Directiva de reintentos de consumo: mismo número máximo de reintentos e intervalo entre ellos.
La aplicación de estas configuraciones depende de la versión del broker:
|
Versión del broker |
Comportamiento |
|
ApsaraMQ for RocketMQ 5.x |
Los consumidores heredan el orden de entrega y la directiva de reintentos del grupo de consumidores. No se requiere configuración del lado del cliente. |
|
ApsaraMQ for RocketMQ 3.x / 4.x |
El orden de entrega y la directiva de reintentos se establecen mediante operaciones de api del lado del cliente. Asegúrese de que todos los consumidores del grupo usen la misma configuración. |
Si se conecta a un broker 5.x con una versión anterior del sdk, el comportamiento de consumo lo determina la configuración de la api del lado del cliente, no la configuración del grupo de consumidores.
Mejores prácticas
Separar grupos por dominio de negocio
Existe una relación de muchos a muchos entre consumidores y temas. Siga estas pautas al diseñar grupos de consumidores:
|
Pauta |
Recomendación |
|
Coincidencia en el orden de entrega |
Todos los consumidores de un grupo deben usar el mismo orden de entrega. No mezcle consumo ordenado y concurrente en el mismo grupo. |
|
Un grupo por dominio de negocio |
Distintos dominios de negocio suelen requerir diferentes reglas de filtrado y directivas de reintentos. Cree grupos de consumidores separados para cada dominio. |
|
Limitar suscripciones a temas |
Un solo grupo de consumidores no debe suscribirse a más de 10 temas. |
Evitar mecanismos automatizados para gestionar grupos de consumidores
Cada grupo de consumidores mantiene estado persistente: progreso de consumo, acumulaciones de mensajes y métricas de monitoreo. Trátelos como infraestructura gestionada en producción:
Evite usar mecanismos automatizados para crear, eliminar o modificar grupos de consumidores.
No agregue, elimine, modifique ni consulte grupos de consumidores de forma arbitraria en entornos de producción.
Monitoree el progreso de consumo y las acumulaciones de mensajes para detectar problemas a tiempo.