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.
Lógica de entrega de colas FIFO en Amazon SQS
Los siguientes conceptos aclaran cómo gestionan las colas FIFO de Amazon SQS el envío y la recepción de mensajes, especialmente cuando se trata del orden y el grupo de mensajes. IDs
Envío de mensajes
Las colas FIFO de Amazon SQS conservan el orden de los mensajes mediante una IDs deduplicación y un grupo de mensajes únicos. IDs En este tema se destaca la importancia de los grupos de mensajes IDs para mantener un orden estricto dentro de los grupos y se destacan las mejores prácticas para garantizar una entrega de mensajes ordenada y fiable entre varios productores.
-
Preservación de pedidos
-
Cuando se envían varios mensajes sucesivamente a una cola FIFO con una deduplicación de mensajes única, Amazon IDs SQS los almacena y confirma su transmisión. A continuación, estos mensajes se reciben y procesan en el mismo orden en que se transmitieron.
-
-
ID de grupo de mensajes
-
En las colas FIFO, los mensajes se ordenan en función de su ID de grupo de mensajes. Si varios productores o subprocesos envían mensajes con el mismo ID de grupo de mensajes, Amazon SQS garantiza que se almacenen y procesen en el orden en que llegan.
-
Práctica recomendada: para garantizar un orden estricto de los mensajes entre varios productores, asigne un ID de grupo de mensajes único a todos los mensajes de cada productor.
-
-
Ordenación por grupos
-
La lógica de las colas FIFO se aplica por ID de grupo de mensajes:
-
Cada ID de grupo de mensajes representa un grupo de mensajes distinto y ordenado.
-
Cada ID de grupo de mensajes contiene mensajes que se envían y reciben por riguroso orden.
-
IDs Es posible que los mensajes con un grupo de mensajes diferente lleguen o se procesen de forma desordenada entre sí.
-
-
Requisito: debe asociar un ID de grupo de mensajes a cada mensaje. En caso de que se envíe un mensaje sin un ID de grupo, la acción no se llevará a cabo.
-
Escenario de un solo grupo: si necesita que todos los mensajes se procesen siguiendo un orden estricto, utilice el mismo ID de grupo de mensajes para todos los mensajes.
-
Recepción de mensajes
Las colas FIFO de Amazon SQS gestionan la recuperación de mensajes, incluido el procesamiento por lotes, las garantías de los pedidos FIFO y las limitaciones a la hora de solicitar un grupo de mensajes específico. IDs En este tema se explica cómo Amazon SQS recupera los mensajes dentro y entre grupos de mensajes, IDs manteniendo normas estrictas de orden y visibilidad.
-
Recuperación por lotes
-
Al recibir mensajes de una cola FIFO con varios grupos de mensajes IDs, Amazon SQS:
-
Intenta devolver el mayor número posible de mensajes con el mismo ID de grupo de mensajes en una sola llamada.
-
Permite a otros consumidores procesar mensajes de diferentes grupos de mensajes de forma simultánea. IDs
-
-
Aclaración importante
-
Puede recibir varios mensajes del mismo ID de grupo de mensajes en un solo lote (hasta 10 mensajes en una sola llamada con el parámetro
MaxNumberOfMessages). -
Sin embargo, no podrá recibir mensajes adicionales del mismo ID de grupo de mensajes en solicitudes posteriores hasta que:
-
Se eliminen los mensajes recibidos actualmente; o
-
vuelvan a estar visibles (por ejemplo, una vez transcurrido el tiempo de espera de visibilidad).
-
-
-
-
Garantía de orden FIFO
-
Los mensajes recuperados en un lote conservan su orden FIFO dentro del grupo.
-
Si hay menos de 10 mensajes disponibles para el mismo ID de grupo de mensajes, Amazon SQS puede incluir mensajes de otro grupo de mensajes IDs en el mismo lote, pero cada grupo conserva el orden FIFO.
-
-
Limitaciones del consumidor
-
No puede solicitar de manera explícita la recepción de mensajes de un ID de grupo de mensajes específico.
-
Varios reintentos
Los productores y consumidores pueden reintentar de forma segura las acciones con errores en las colas FIFO de Amazon SQS sin alterar el orden de los mensajes ni introducir duplicados. En este tema se destaca cómo los tiempos de espera de la deduplicación IDs y la visibilidad garantizan la integridad de los mensajes durante los reintentos.
-
El productor vuelve a intentarlo
-
Si se produce un error en una acción
SendMessage, el productor puede reintentar el envío del mensaje varias veces con el mismo ID de desduplicación del mensaje. -
Siempre que el productor reciba al menos una confirmación antes de que se agote el intervalo de desduplicación, los reintentos:
-
No introducirán mensajes duplicados.
-
No alterarán el orden de los mensajes.
-
-
-
El consumidor vuelve a intentarlo
-
Si una acción
ReceiveMessagefalla, el consumidor puede reintentarlo con el mismo ID de intento de solicitud de recepción tantas veces como sea necesario. -
Siempre que el consumidor reciba al menos una confirmación antes de que se agote el tiempo de espera de visibilidad, los reintentos:
-
No alterarán el orden de los mensajes.
-
-
Notas adicionales sobre el comportamiento FIFO
Obtenga información sobre cómo gestionar los tiempos de espera de visibilidad, habilitar el procesamiento paralelo con varios grupos IDs de mensajes y garantizar un procesamiento secuencial estricto en escenarios de un solo grupo.
-
Gestión del tiempo de espera de visibilidad
-
Cuando se recupera un mensaje pero no se elimina, permanece invisible hasta que se agote el tiempo de espera de visibilidad.
-
No se devuelve ningún mensaje adicional del mismo ID de grupo de mensajes hasta que se elimina el primer mensaje o vuelve a estar visible.
-
-
Simultaneidad y procesamiento paralelo
-
Las colas FIFO permiten el procesamiento paralelo de mensajes en diferentes grupos de mensajes. IDs
-
Para maximizar la simultaneidad, diseñe su sistema con varios grupos de mensajes IDs para lograr flujos de trabajo independientes.
-
-
Escenarios de un solo grupo
-
Para un procesamiento secuencial estricto de todos los mensajes de una cola FIFO, utilice un único ID de grupo de mensajes para todos los mensajes de la cola.
-
Ejemplos para una mejor comprensión
A continuación, se muestran escenarios de uso que ilustran el comportamiento de las colas FIFO en Amazon SQS.
-
Escenario 1: ID de grupo único
-
Un productor envía cinco mensajes con el mismo ID de grupo de mensajes: grupo A.
-
Un consumidor recibe estos mensajes en orden FIFO. Hasta que el consumidor elimine estos mensajes o se agote el tiempo de espera de visibilidad, no se recibirá ningún mensaje adicional del grupo A.
-
-
Escenario 2: Grupo múltiple IDs
-
Un productor envía cinco mensajes al grupo A y cinco al grupo B.
-
El consumidor 1 procesa los mensajes del grupo A, mientras que el consumidor 2 procesa los mensajes del grupo B. Esto permite el procesamiento en paralelo con un orden estricto dentro de cada grupo.
-
-
Escenario 3: recuperación por lotes
-
Un productor envía siete mensajes al Grupo A y tres al Grupo B.
-
Un único consumidor recupera hasta 10 mensajes. Si la cola lo permite, puede devolver:
-
Siete mensajes del grupo A y tres del grupo B (o menos si hay menos mensajes disponibles de un solo grupo).
-
-