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 justas de Amazon SQS
Las colas justas de Amazon SQS mitigan de manera automática el impacto en las colas de varios inquilinos que contienen mensajes de varias entidades lógicas, como clientes, aplicaciones cliente o tipos de mensajes. En estos entornos de colas compartidas, una métrica de rendimiento fundamental es el tiempo de permanencia, que mide el tiempo total que los mensajes pasan en una cola desde su llegada hasta su procesamiento. Cuando un inquilino crea una tarea pendiente 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 permanencia de los demás inquilinos.
Estado estacionario
En el siguiente diagrama se ilustra una cola de varios inquilinos que contiene mensajes de cuatro inquilinos distintos (denominados A, B, C y D). La cola funciona en un estado estacionario y no hay tareas pendientes de mensajes, ya que los consumidores reciben los mensajes en cuanto aparecen en la cola. Todos los inquilinos experimentan tiempos de permanencia bajos. La capacidad de los consumidores no se utiliza por completo en este estado estacionario.
Impacto del vecino ruidoso
El impacto del vecino ruidoso se produce cuando un inquilino de una cola de varios inquilinos crea una tarea pendiente, lo que aumenta el tiempo de permanencia de los mensajes de todos los demás inquilinos. Un inquilino puede convertirse en un vecino ruidoso si envía un volumen de mensajes mayor que los demás inquilinos, o cuando los consumidores tardan más en procesar los mensajes de ese inquilino en particular.
En este diagrama se ilustra cómo el aumento del tráfico del inquilino A crea una tarea pendiente en la cola. Los consumidores están ocupados procesando los mensajes del inquilino A, mientras que los mensajes de los demás inquilinos permanecen como tareas pendientes, lo que provoca un aumento del tiempo de permanencia de todos los inquilinos.
Mitigación con colas justas
Amazon SQS detecta vecinos ruidosos mediante la supervisión de la distribución de mensajes entre los inquilinos durante el procesamiento (estado “en tránsito”). Cuando un inquilino tiene un número desproporcionadamente grande de mensajes en tránsito en comparación con los demás, Amazon SQS lo identifica como un vecino ruidoso y prioriza la entrega de mensajes a los demás inquilinos. Este enfoque reduce el impacto del tiempo de permanencia en los demás inquilinos.
En este diagrama se ilustra cómo las colas justas de Amazon SQS resuelven el problema del vecino ruidoso. Cuando un inquilino (inquilino A) se vuelve ruidoso, Amazon SQS prioriza la devolución de los mensajes de los demás inquilinos (B, C y D). Esta priorización ayuda a mantener bajos los tiempos de permanencia de los inquilinos silenciosos, los inquilinos B, C y D, mientras que el tiempo de permanencia de los mensajes del inquilino A se eleva hasta que se agota la cola de tareas pendientes sin afectar a los demás inquilinos.
nota
Amazon SQS no limita la velocidad de consumo por inquilino. Permite a los consumidores recibir mensajes de inquilinos vecinos ruidosos cuando hay capacidad de consumo y la cola no tiene más 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 el número de inquilinos que puede tener en la cola.
Para obtener más información sobre cómo Amazon SQS detecta vecinos ruidosos y gestiona los pedidos de entrega de mensajes, consulte Cómo funcionan las colas de espera de Amazon SQS.
Cómo utilizar las colas justas
Para permitir colas justas, los productores de mensajes deberían añadir un identificador de inquilino configurando una MessageGroupId en los mensajes salientes:
// 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 Esto no requiere ningún cambio en el código de consumidor, no afecta a la latencia de la API y no implica ninguna limitación de rendimiento.
nota
MessageGroupIden las colas estándar con colas justas no se comporta igual MessageGroupId que en las colas FIFO. En las colas estándar, MessageGroupId se usa solo como identificador de inquilinos para las colas justas y no exige el orden de los mensajes. Para obtener más información MessageGroupId sobre las colas FIFO, consulte Uso del ID de grupo de mensajes con las colas FIFO de Amazon SQS.
Cuándo utilizar colas justas
Considere la posibilidad de utilizar colas justas cuando se aplique todo lo siguiente a su cola:
-
La cola es multiusuario. La cola contiene mensajes que pertenecen a varias entidades lógicas, como clientes, aplicaciones cliente o tipos de solicitudes, y puede identificar cada entidad con un.
MessageGroupId -
La cola es de alto rendimiento. Con un rendimiento bajo, la pérdida de ingresos de un inquilino rara vez genera una acumulación de pedidos que afecte a otros inquilinos. Con un alto rendimiento, no es práctico sobreescalar la flota de consumidores para absorber cada ráfaga, e incluso con el autoscalamiento, el retraso antes de que los nuevos consumidores entren en línea puede provocar que se acumulen atrasos.
-
El tiempo de espera forma parte de la calidad de servicio de su aplicación. Las colas justas protegen a los inquilinos silenciosos del tiempo de espera prolongado provocado por un vecino ruidoso. Si su solicitud no depende del tiempo de permanencia, es posible que no necesite la protección de vecinos ruidosos que ofrecen las colas en las ferias.
Métricas de colas justas CloudWatch
Amazon SQS proporciona CloudWatch métricas adicionales para ayudarle a supervisar la mitigación del impacto en los vecinos ruidosos. Por ejemplo, puede comparar las métricas Approximate..InQuietGroups con las métricas estándar de las colas. Durante los picos de tráfico de un inquilino específico, las métricas generales de las colas pueden revelar un aumento de las tareas pendientes o una mayor antigüedad de los mensajes. Sin embargo, al observar los grupos silenciosos de forma aislada, se puede identificar que la mayoría de los grupos de mensajes o inquilinos no ruidosos no se ven afectados.
A continuación, encontrará 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 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.