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.

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.

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.

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

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