Saltar al contenido

¿Cómo puedo evitar un aumento de los mensajes pendientes en mi cola de Amazon SQS?

4 minutos de lectura
0

La acumulación de mensajes en mi cola de Amazon Simple Queue Service (Amazon SQS) ha aumentado y quiero evitar que aumente.

Descripción corta

Colas de SQS FIFO y estándar

La acumulación de mensajes aumenta en las siguientes circunstancias:

  • Los productores envían mensajes a un ritmo más rápido del que se consumen.
  • Los consumidores no eliminan los mensajes dentro del período de tiempo de espera de visibilidad. Cuando se sondea la cola de SQS, los mensajes vuelven a aparecer en la cola.

Colas de SQS FIFO

En el caso de las colas de SQS FIFO (primero en entrar, primero en salir), un aumento en la acumulación de mensajes también puede deberse a una de las siguientes causas:

  • El límite de búfer de 120 000 mensajes de cola FIFO.
  • Un mensaje que pertenece a un grupo de mensajes se bloquea en un consumidor, lo que impide que se procesen otros mensajes del mismo grupo de mensajes.

Resolución

Siga estas prácticas recomendadas para evitar un aumento de la acumulación de mensajes.

Colas de SQS FIFO y estándar

  • Establezca el tiempo de espera de visibilidad óptimo de la cola SQS para que el consumidor pueda eliminar los mensajes después de procesarlos dentro del período de tiempo de espera de visibilidad. Si no sabe cuánto tiempo lleva procesar un mensaje, cree un ritmo para el proceso del consumidor. Especifique el tiempo de espera de visibilidad inicial (por ejemplo, dos minutos). Si el consumidor necesita más tiempo para procesar el mensaje, use la llamada a la API ChangeMessageVisibility para aumentar el tiempo de espera de visibilidad.
  • Aumente el tamaño del lote al realizar llamadas a la API ReceiveMessage. Establezca el valor del parámetro MaxNumberOfMessages en más de 1 y hasta un máximo de 10.
  • Supervise la métrica de cola de SQS Número aproximado de mensajes visibles. Esta métrica le permite ver si los productores comienzan a producir mensajes a un ritmo mayor del que los consumidores pueden consumir los mensajes. Para escalar horizontalmente, aumente la cantidad de consumidores o clientes que consumen la cola de SQS o aumente la cantidad de subprocesos que sondean la cola.

Colas de SQS FIFO

Búfer de 120 000 mensajes

Las colas FIFO permiten un máximo de 120 000 mensajes en curso. Los mensajes en curso incluyen los que un consumidor recibe de una cola, pero que aún no se han eliminado de esta. Si alcanza la cuota de 120 000, Amazon SQS no devolverá mensajes de error.

Una cola FIFO revisa los 120 000 primeros mensajes para determinar los grupos de mensajes disponibles. Si tiene una acumulación de mensajes en un solo grupo de mensajes, no podrá consumir los mensajes de otros grupos de mensajes hasta que consuma correctamente los mensajes de la acumulación.

Ampliación de los grupos de mensajes

Los mensajes que pertenecen al mismo grupo de mensajes se procesan uno por uno, en el orden relativo al grupo de mensajes. Cuando recibe mensajes con varios ID de grupo de mensajes, Amazon SQS intenta devolver tantos mensajes con el mismo ID de grupo de mensajes como sea posible. Esto permite a otros consumidores procesar mensajes con un ID de grupo de mensajes diferente.

Cuando los mensajes que pertenecen a un ID de grupo de mensajes específico son invisibles, ningún otro consumidor puede procesar los mensajes con el mismo ID de grupo de mensajes. Sin embargo, los consumidores pueden procesar los mensajes de otros grupos de mensajes. Intente aumentar la cantidad de grupos de mensajes en los que el orden no sea importante.

OFICIAL DE AWSActualizada hace un año