Uso del ID de grupo de mensajes de Amazon SQS - Amazon Simple Queue Service

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Uso del ID de grupo de mensajes de Amazon SQS

MessageGroupId es la etiqueta que especifica que un mensaje pertenece a un grupo de mensajes específico. Los mensajes que pertenecen al mismo grupo de mensajes se procesan siempre uno a uno, en un orden estricto relativo al grupo de mensajes (no obstante, los mensajes que pertenecen a grupos de mensajes diferentes podrían procesarse sin orden).

Intercalación de varios grupos de mensajes ordenados

Para intercalar varios grupos de mensajes ordenados dentro de una única cola FIFO, debe utilizar valores de ID de grupo de mensajes (por ejemplo, datos de sesiones para varios usuarios). En esta situación, varios consumidores pueden procesar la cola, pero los datos de sesión de cada usuario se procesan según el modelo FIFO.

nota

Cuando los mensajes que pertenecen a un determinado ID de grupo de mensajes son invisibles, ningún otro consumidor puede procesar los mensajes que tienen el mismo ID de grupo de mensajes.

Cómo evitar procesar los duplicados en un sistema de varios productores y consumidores

Para evitar el procesamiento de mensajes duplicados en un sistema que cuenta con varios productores y consumidores y donde el desempeño y la latencia son más importantes que la ordenación, el productor debería generar un ID de grupo de mensajes único para cada mensaje.

nota

En esta situación, se eliminan los duplicados. Sin embargo, la ordenación de los mensaje no se puede garantizar.

Cualquier escenario que tenga varios productores y consumidores aumenta el riesgo de entregar accidentalmente un mensaje duplicado si un proceso de trabajo no procesa el mensaje durante el tiempo de espera de visibilidad y el mensaje está disponible para otro proceso de trabajo.

Evite tener una gran cantidad de tareas pendientes de mensajes con el mismo ID de grupo de mensajes

En el caso de las colas FIFO, puede haber un máximo de 20 000 mensajes en tránsito (recibidos de una cola por un consumidor, pero aún no eliminados de la cola). Si alcanza esta cuota, Amazon SQS no devuelve ningún mensaje de error. Una cola FIFO examina los primeros 20 000 mensajes para determinar los grupos de mensajes disponibles. Esto significa que si tiene mensajes pendientes en un único grupo de mensajes, no podrá consumir mensajes de otros grupos de mensajes que se hayan enviado a la cola posteriormente hasta que consuma correctamente los mensajes pendientes.

nota

Es posible que se acumulen tareas pendientes de mensajes que tengan el mismo ID de grupo de mensajes debido a que un consumidor no puede procesar correctamente un mensaje. Los problemas de procesamiento de mensajes pueden producirse debido a un problema con el contenido de un mensaje o debido a un problema técnico con el consumidor.

Para alejar los mensajes que no se pueden procesar repetidamente y desbloquear el procesamiento de otros mensajes que tienen el mismo ID de grupo de mensajes, considere la posibilidad de configurar una política de cola de mensajes fallidos.

Evite reutilizar el mismo ID de grupo de mensajes con colas virtuales

Para evitar que los mensajes con el mismo ID de grupo de mensajes enviados a diferentes colas virtuales con la misma cola de host se bloqueen entre sí, intente reutilizar el mismo ID de grupo de mensajes con colas virtuales.