Amazon SQS (Simple Queue Service)

Amazon SQS (Simple Queue Service)

¿Cuáles son las características de SQS?

  • Simple SQS es el servicio mas antiguo ofrecido por AWS.
  • Puede ser invocado por un componente y consumido por otro.

¿Cuáles son las ventajas de utilizar SQS?

  • Se desacoplan los componentes de una aplicacion de forma que corran de manera independiente.
  • Cualquier componente puede guardar mensajes en un estado a prueba de fallos.
  • Los mensajes pueden contener hasta 256K de text en cualquier formato.
  • Cualquier componente puede retraer los mensajes de manera automatizada utilizando la API de Amazon SQS.
  • La lista actúa como un buffer entre el componente produciendo y el componente reciviendo los datos.
  • Es posible escalar arriba y abajo el número de componentes recibiendo los datos basado en un punto del tiempo la dimensión de la lista.

¿Cuáles son los tipos de Queue (listas) que existen?

Standard Queue (default)

  • Soporta un número ilimitado de transacciones por segundo.
  • Intenta proveer en la medida de lo posible los mensajes en el orden en el que fueron provistos.
  • Ocasionalmente en sistemas de gran demandan, mas de una copia del mensaje puede ser consumida fuera del orden originalmente provisto.

FIFO Queues (First-in First-out)

  • Los mensajes son entregados exactamente en el orden en el que se recibieron.
  • Los mensajes se preservan hasta que el componente que los consume termina de procesarlos, entonces son borrados.
  • Los duplicados no son introducidos en la lista.
  • Soporta grupos de mensajes que permiten grupos de mensajes ordenados de diferentes formas dentro de una misma cola (queue).
  • Es limitado a 300 transacciones por segundo.
  • Tiene todas las capacidades de una standard queue.

Factores a tomar en cuenta

  • SQS es pull based, no pushed based, esta basado en extracción de datos no en inserción.
  • Los mensajes están limitados a 256K en cualquier formato.
  • Los tiempo limite que mensajes se mantienen en la cola puede ser de 1 min a 14 días (el valor por default son 4 días).
  • El timeout visibility (tiempo máximo de visibilidad) es el tiempo que toma a un mensaje mantenerse invisible a la cola de SQS después de que un lector retrae el mensaje.
  • El timeout máximo son 12 horas.
  • Amazon SQS LongPolling es una forma de retraer mensajes desde la cola, hasta que un nuevo mensaje sea depositado o se exceda un long poll timeout.