Tipos de cola

Amazon SQS ofrece dos tipos de cola para diferentes requisitos de aplicaciones:

Colas estándar

Capacidad de procesamiento ilimitada: las colas estándar admiten un número casi ilimitado de transacciones por segundo (TPS) para cada acción de la API.

Al menos una entrega: los mensajes se entregan al menos una vez, aunque en ocasiones se entregan varias copias el mensaje.

Orden para optimizar el esfuerzo: en ocasiones, los mensajes se entregan en un orden distinto al que se enviaron.

Colas FIFO

Capacidad de procesamiento alta: de manera predeterminada, las colas FIFO admiten hasta 300 mensajes por segundo (300 operaciones de envío, recepción o eliminación por segundo). Si agrupa 10 mensajes por operación (máximo), las colas FIFO pueden admitir hasta 3000 mensajes por segundo. Para solicitar un aumento del límite, presente una solicitud de soporte técnico.

Procesamiento único: los mensajes se envían una vez y permanecen disponibles hasta que el cliente los procesa y elimina. Los duplicados no se introducen en la cola.

Entrega primero en entrar, primero en salir: se conserva estrictamente el orden en que se envían y reciben los mensajes.

sqs-what-is-sqs-standard-queue-diagram
sqs-what-is-sqs-fifo-queue-diagram

Puede usar colas de mensajes estándar en muchos escenarios, siempre que su aplicación pueda procesar los mensajes que llegan más de una vez y fuera de orden, por ejemplo:

  • Para desacoplar solicitudes de usuario en tiempo real de un trabajo en segundo plano intensivo: permite a los usuarios cargar archivos multimedia mientras cambia el tamaño o se codifican.
  • Para asignar tareas a varios nodos de empleado: procesa un alto número de solicitudes de validación de tarjetas de crédito.
  • Para agrupar mensajes para procesarlos más adelante: programa varias entradas para añadirlas a una base de datos.

Las colas FIFO están diseñadas para mejorar la mensajería entre aplicaciones cuando el orden de las operaciones y los eventos es fundamental o cuando no se permiten duplicados, por ejemplo:

  • Para garantizar que los comandos introducidos por el usuario se ejecutan en el orden correcto.
  • Para mostrar el precio correcto del producto enviando modificaciones de precios en el orden correcto.
  • Para evitar que un estudiante se inscriba en un curso antes de registrarse para obtener una cuenta.

Funcionalidad

  • Colas y mensajes ilimitados: cree colas de Amazon SQS ilimitadas con un número ilimitado de mensajes en cualquier región.
  • Tamaño de carga: las cargas de mensaje pueden contener un máximo de 256 KB de texto en cualquier formato. Cada porción de 64 KB de carga se factura como una solicitud. Por ejemplo, una sola llamada a la API con una carga de 256 KB se facturará como cuatro solicitudes. Para enviar mensajes mayores de 256 KB, puede utilizar Amazon SQS Extended Client Library for Java, que emplea Amazon S3 para almacenar la carga del mensaje. Se envía mediante SQS una referencia a la carga del mensaje.
  • Lotes: envíe, reciba o elimine mensajes en lotes de hasta 10 mensajes o 256 KB. Los lotes cuestan lo mismo que los mensajes individuales, por lo que SQS puede ser incluso más rentable para los clientes que usan los lotes.
  • Las llamadas selectivas largas reducen las llamadas selectivas no pertinentes para reducir los costos mientras se reciben mensajes nuevos lo más rápido posible. Cuando la cola esté vacía, las solicitudes de llamada selectiva larga esperarán hasta 20 segundos para que llegue el siguiente mensaje. Las solicitudes de sondeo largas cuestan lo mismo que las solicitudes normales.
  • Retenga los mensajes en colas durante un máximo de 14 días.
  • Envíe y lea mensajes simultáneamente.
  • Bloqueo de mensajes: cuando se recibe un mensaje, este queda "bloqueado" mientras se procesa. Esto impide que otros equipos lo procesen simultáneamente. Si el mensaje no se procesa correctamente, el bloqueo expira y el mensaje vuelve a estar disponible.
  • Uso compartido de cola: comparta de manera segura colas de Amazon SQS anónimamente o con cuentas de AWS específicas. El intercambio de colas también se puede restringir por dirección IP y por hora del día.
  • Cifrado del lado del servidor (SSE): protege el contenido de los mensajes de las colas de Amazon SQS con claves que se administran en AWS Key Management Service (AWS KMS). El SSE cifra los mensajes tan pronto como Amazon SQS los recibe. Los mensajes se almacenan de manera cifrada y Amazon SQS los descifra únicamente cuando se envían a un consumidor autorizado.
  • Colas de mensajes fallidos (DLQ): gestione mensajes que no ha procesado correctamente un consumidor con las colas de mensajes fallidos. Cuando se excede el número máximo de recepciones para un mensaje, este se transferirá a la DLQ asociada con la cola original. Configure procesos de consumidores independientes para colas de mensajes fallidos para ayudar a analizar y comprender por qué los mensajes se quedan atascados. Los DLQ deben ser del mismo tipo que la cola fuente (estándar o FIFO).

Uso de Amazon SQS con otros servicios web de infraestructura de AWS

Las colas de mensajes de Amazon SQS se pueden utilizar con otros servicios de AWS como Redshift, DynamoDB, RDS, EC2, ECS, Lambda y S3, para que las aplicaciones distribuidas sean más escalables y de confianza. A continuación, se muestran algunos patrones de diseño habituales:

  • Colas de trabajo: desacople componentes de una aplicación distribuida que es posible que no procesen la misma cantidad de trabajo de forma simultánea.
  • Búfer y operaciones por lotes: agregue escalabilidad y fiabilidad a su arquitectura, y resuelva los picos temporales en el volumen sin perder mensajes ni aumentar la latencia.
  • Descarga de solicitudes: retire las operaciones lentas de las rutas de solicitud interactivas poniendo la solicitud en cola.
  • Distribución: combine SQS con Simple Notification Service (SNS) para enviar copias idénticas de un mensaje a varias colas de forma paralela.
  • Prioridad: utilice colas independientes para asignar prioridades de trabajo.
  • Escalabilidad: como las colas de mensajes desacoplan sus procesos, es fácil aumentar la tasa de envío o recepción de mensajes: basta con añadir otro proceso.
  • Resistencia: cuando una parte de su sistema cae, no tiene por qué echar abajo todo el sistema. Las colas de mensajes desacoplan componentes de su sistema, de modo que, si cae un proceso que está leyendo mensajes de la cola, es posible añadir dichos mensajes a la cola para que se procesen cuando el sistema se recupere.

Uso previsto y restricciones

El uso que realice de este servicio está sujeto al Contrato de cliente de Amazon Web Services.

Más información sobre los precios de Amazon SQS

Visite la página de precios
¿Listo para crear?
Comience a utilizar Amazon SQS
¿Tiene más preguntas?
Contacte con nosotros