Amazon SQS - AWS Guía prescriptiva

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.

Amazon SQS

Amazon SQS es compatible con colas estándar, que no garantizan el orden, y las colas FIFO, que sí garantizan el orden dentro de un grupo de mensajes determinado.

Las colas son un método común de coreografía de microservicios y proporcionan un almacenamiento duradero de los mensajes durante un máximo de 14 días. Las colas las llenan los productores y las vacían los consumidores. Cuando utiliza AWS Lambda como consumidor, puede configurar una cola de SQS como fuente de eventos. En este caso, la asignación de orígenes de eventos (ESM) del servicio Lambda sondea la cola por usted y envía los mensajes a su función de Lambda cuando están disponibles. Los microservicios que se ejecutan en otros tipos de servicios de cómputo, como Amazon Elastic Container Service (Amazon ECS) o Amazon Elastic Compute Cloud (Amazon EC2), deben implementar su propio mecanismo de sondeo para recuperar mensajes nuevos de la cola cuando estén disponibles.

Lambda ESM para Amazon SQS también admite el filtrado de mensajes, lo que permite procesar solo un subconjunto de mensajes de una cola en función del contenido del cuerpo del mensaje.

Sondeo

Amazon SQS es compatible con sondeos cortos y largos de mensajes. El sondeo corto consulta un subconjunto de servidores para encontrar los mensajes disponibles y los devuelve de inmediato. Sin embargo, es posible que no se devuelvan todos los mensajes disponibles. Esto es útil cuando la aplicación necesita consumir los mensajes lo más rápido posible o no tolera la espera durante un tiempo prolongado.

Un sondeo prolongado aguarda hasta que haya transcurrido un período de tiempo configurable o se haya recibido un número configurable de mensajes antes de devolverlos. Esto podría reducir el número de sondeos vacíos, es decir, la cantidad de sondeos en los que no se devuelve ningún mensaje, en especial en el caso de las colas que no reciben muchos mensajes. Reducir el número de sondeos vacíos puede reducir los costos de Amazon SQS, ya que este servicio cobra por cada solicitud y cada operación de sondeo es una solicitud.

Directrices

Las colas son una buena opción cuando:

  • Desea desacoplar los componentes y no necesita una comunicación síncrona entre ellos.

  • Se está comunicando entre componentes que tienen diferentes acuerdos de nivel de servicio (SLA) u objetivos de nivel de servicio (SLO) de disponibilidad diferentes.

  • En general, tiene un único consumidor para un conjunto de mensajes.

Considere una opción alternativa si:

  • Necesita una comunicación síncrona.

  • Necesita una lógica de enrutamiento complicada para enviar los mensajes al consumidor correcto.