Colas de ferias de Amazon SQS - Amazon Simple Queue Service

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.

Colas de ferias de Amazon SQS

Las colas justas de Amazon SQS mitigan automáticamente el impacto en las colas de varios inquilinos que contienen mensajes de varias entidades lógicas, como clientes, aplicaciones de cliente o tipos de mensajes. En estos entornos de colas compartidas, una métrica de rendimiento fundamental es el tiempo de espera, que mide el tiempo total que los mensajes pasan en una cola desde su llegada hasta su procesamiento. Cuando un inquilino crea un retraso en la cola al publicar más mensajes de los que el sistema puede gestionar, las colas justas minimizan el impacto en el tiempo de espera para los demás inquilinos.

Estado estacionario

El siguiente diagrama ilustra una cola de varios inquilinos que contiene mensajes de cuatro inquilinos distintos (denominados A, B, C y D). La cola funciona de forma estable y no hay acumulación de mensajes pendientes, ya que los consumidores reciben los mensajes en cuanto aparecen en la cola. Todos los inquilinos tienen tiempos de permanencia bajos. No toda la capacidad de consumo se utiliza plenamente en este estado estable.

Una cola de varios usuarios que contiene mensajes de cuatro usuarios diferentes (representados por A, B, C y D). La cola está en un estado estable y los mensajes en movimiento se distribuyen de manera uniforme entre los inquilinos, sin retrasos y con un tiempo de espera reducido para todos los inquilinos.

Impacto ruidoso en los vecinos

El ruido en los vecinos se produce cuando un inquilino de una cola de varios inquilinos crea un atraso, lo que aumenta el tiempo de espera de los mensajes para todos los demás inquilinos. Un inquilino puede convertirse en un vecino ruidoso si envía un mayor volumen de mensajes que otros inquilinos, o cuando los consumidores tardan más en procesar los mensajes de ese inquilino en particular.

Este diagrama ilustra cómo el aumento del tráfico del inquilino A crea un atraso en la cola. Los consumidores están ocupados procesando solo los mensajes del arrendatario A, mientras que los mensajes de otros inquilinos se quedan pendientes, lo que se traduce en tiempos de espera más prolongados para todos los inquilinos.

El resultado es que el inquilino A aumenta el tráfico y crea una acumulación de pedidos en la cola. Los mensajes del inquilino A están sobrerrepresentados cuando están en tránsito y los mensajes de otros inquilinos se quedan atascados, lo que aumenta el tiempo de espera.

Mitigación con colas justas

Amazon SQS detecta vecinos ruidosos mediante la supervisión de la distribución de los mensajes entre los inquilinos durante el procesamiento (estado «en movimiento»). Cuando un inquilino tiene un número desproporcionadamente grande de mensajes durante el vuelo en comparación con otros, Amazon SQS lo identifica como un vecino ruidoso y da prioridad a la entrega de mensajes a los demás inquilinos. Este enfoque reduce el impacto del tiempo de permanencia en los demás inquilinos.

Este diagrama ilustra cómo Amazon SQS Fair Quees aborda el problema de los vecinos ruidosos. Cuando un inquilino (el inquilino A) hace ruido, Amazon SQS prioriza la devolución de los mensajes de otros inquilinos (B, C y D). Esta priorización ayuda a mantener bajos los tiempos de espera de los inquilinos B, C y D, que permanecen silenciosos, mientras que el tiempo de espera de los mensajes del inquilino A aumenta hasta que se agotan las colas acumuladas sin afectar a los demás inquilinos.

Un ejemplo de cómo Fair Quees resuelve el problema de los vecinos ruidosos mediante la supervisión del estado durante el vuelo. Cuando el inquilino A se vuelve ruidoso, SQS intenta devolver los mensajes de otros inquilinos (B, C, D) para que los mensajes durante el vuelo se distribuyan uniformemente entre los inquilinos. El tiempo de espera de los inquilinos (B, C, D) seguirá siendo bajo, mientras que el tiempo de espera de los mensajes del inquilino A se incrementará hasta que se agoten las colas acumuladas.
nota

Amazon SQS no limita la tasa de consumo por inquilino. Permite a los consumidores recibir mensajes de inquilinos vecinos ruidosos cuando hay capacidad de consumo y la cola no tiene otros mensajes que devolver. Al igual que las colas estándar de Amazon SQS, las colas justas permiten un rendimiento prácticamente ilimitado y no hay límites en cuanto al número de inquilinos que podría tener en la cola.

¿Qué diferencia hay con las colas FIFO

Las colas FIFO mantienen un orden estricto al limitar la cantidad de mensajes a bordo de cada inquilino. Si bien esto evita que los vecinos sean ruidosos, limita el rendimiento de cada inquilino. Las colas justas están diseñadas para escenarios con varios inquilinos en los que se prioriza un alto rendimiento, un tiempo de espera reducido y una asignación justa de los recursos. Las colas justas permiten que varios consumidores procesen los mensajes del mismo inquilino simultáneamente y, al mismo tiempo, ayudan a todos los inquilinos a mantener tiempos de espera constantes.

Utilizar colas justas

Los productores de sus mensajes pueden añadir un identificador de inquilino configurando un MessageGroupId en un mensaje saliente:

// Send message with tenant identifier SendMessageRequest request = new SendMessageRequest() .withQueueUrl(queueUrl) .withMessageBody(messageBody) .withMessageGroupId("tenant-123"); // Tenant identifier sqs.sendMessage(request);

La función de imparcialidad se aplicará automáticamente en todas las colas estándar de Amazon SQS para los mensajes con la propiedad. MessageGroupId No requiere ningún cambio en el código de consumo, no afecta a la latencia de la API y no implica ninguna limitación de rendimiento.

Métricas de colas CloudWatch justas

Amazon SQS proporciona CloudWatch métricas adicionales para ayudarle a supervisar la mitigación del impacto en los vecinos ruidosos. Por ejemplo, puede comparar Approximate..InQuietGroups las métricas con las métricas estándar a nivel de cola. Durante los picos de tráfico de un usuario específico, las métricas generales a nivel de cola pueden revelar el aumento de los atrasos o la antigüedad de los mensajes. Sin embargo, si analizas los grupos silenciosos de forma aislada, puedes identificar que la mayoría de los grupos de mensajes o inquilinos que no son ruidosos no se ven afectados.

A continuación, puede ver un ejemplo en el que la métrica estándar de acumulación de colas (ApproximateNumberOfMessagesVisible) aumenta debido a un inquilino ruidoso, mientras que la acumulación de pendientes en el caso de los inquilinos no ruidosos () sigue siendo baja. ApproximateNumberOfMessagesVisibleInQuietGroups

Graph showing queue backlog spike for noisy groups while quiet groups remain low.

Para obtener una lista completa de las CloudWatch métricas de Amazon SQS y sus descripciones, consulte las CloudWatch métricas de Amazon SQS.