View a markdown version of this page

Cómo funcionan las colas para 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.

Cómo funcionan las colas para ferias de Amazon SQS

Las colas justas de Amazon SQS mitigan automáticamente el impacto de las colas de varios inquilinos en las colas de varios inquilinos al evitar que un solo inquilino ralentice el procesamiento de mensajes para otros inquilinos. Cuando las colas en las ferias detectan que un inquilino está consumiendo una parte desproporcionada de la capacidad de consumo de la cola, dan prioridad a la entrega de los mensajes de los inquilinos silenciosos.

Identificación del inquilino

Las colas justas identifican a los inquilinos según la MessageGroupId propiedad en cada mensaje. Los mensajes que comparten lo mismo MessageGroupId pertenecen al mismo inquilino. Una cola justa puede contener una combinación de mensajes con y sin unMessageGroupId. Cada mensaje sin un MessageGroupId se considera que pertenece a su propio inquilino distinto.

Te recomendamos establecer una MessageGroupId en cada mensaje que envíes a una lista de espera, utilizando un identificador que se asigne a una entidad real de tu sistema, como un identificador de cliente, un identificador de aplicación de cliente o un tipo de solicitud.

Cómo funciona la detección

Amazon SQS detecta vecinos ruidosos mediante dos medidas:

  • Distribución de la simultaneidad: los mensajes del inquilino durante el vuelo representan una fracción de todos los mensajes durante el vuelo de la cola. Esto detecta a los inquilinos que están procesando muchos mensajes a la vez, ya sea debido al alto volumen de envíos, a la lentitud del procesamiento o a ambas causas.

  • Porcentaje de tiempo de procesamiento: porcentaje reciente del tiempo total de procesamiento que ha dedicado el arrendatario al consumidor. Esto detecta a los inquilinos cuyos mensajes son pocos pero se procesan lentamente, por lo que el inquilino ocupa una cantidad considerable de tiempo como consumidor sin tener muchos mensajes en circulación a la vez.

Se marca a un inquilino como vecino ruidoso cuando se cumple alguna de las siguientes condiciones:

  • Porcentaje de simultaneidad: el arrendatario representa más del 10% de los mensajes en espera y tiene al menos 30 de sus propios mensajes en espera.

  • Reparto del tiempo de procesamiento: el porcentaje reciente del tiempo total de procesamiento de los consumidores por parte del inquilino supera el 10%.

Dado que Amazon SQS es un sistema distribuido, estos umbrales son aproximados y es posible que la detección no se active con los valores exactos descritos.

Cómo cambia el pedido de entrega de mensajes

Una vez que se detecta que un inquilino es un vecino ruidoso, Amazon SQS prioriza la entrega de mensajes de los inquilinos silenciosos. Las instancias de consumidores que consultan mensajes reciben mensajes de inquilinos silenciosos siempre que haya mensajes de inquilinos silenciosos disponibles. Esta priorización continúa hasta que el porcentaje de concurrencia y tiempo de procesamiento del vecino ruidoso descienda a niveles comparables a los de los inquilinos silenciosos.

Los mensajes de vecinos ruidosos no se descartan ni se limitan. Su tiempo de espera aumenta, mientras que se da prioridad a los mensajes más silenciosos, y vuelve a la normalidad una vez que se elimina la acumulación de mensajes pendientes. Cuando no hay ningún mensaje de usuario silencioso esperando, las instancias de consumo reciben mensajes ruidosos de vecinos, como de costumbre.

Si se detecta que varios inquilinos son vecinos ruidosos al mismo tiempo, las instancias consumidoras reciben primero los mensajes del inquilino ruidoso con el menor número de mensajes durante el vuelo. Esto ayuda a equilibrar el tiempo de procesamiento entre los inquilinos ruidosos.

Cuando un vecino ruidoso se queda callado

Ya no se trata a un inquilino como un vecino ruidoso cuando se cumple alguna de las siguientes condiciones:

  • El atraso del inquilino se ha agotado por completo.

  • No ha habido ningún mensaje del inquilino en vuelo durante un período continuo de 5 minutos.

Después de eso, los mensajes del inquilino dejan de tener prioridad y se tratan de la misma manera que los mensajes de cualquier otro inquilino silencioso.

Consideraciones sobre la capacidad del consumidor

Para que la medida del porcentaje de concurrencia funcione de manera eficaz, sus consumidores deben procesar suficientes mensajes de forma simultánea como para que destaque el porcentaje de mensajes de un inquilino durante el vuelo. Tenga esto en cuenta a la hora de dimensionar su flota de consumidores.

Cuando se utiliza Lambda como consumidor mediante el mapeo de fuentes de eventos, la cantidad de mensajes en movimiento depende tanto de la simultaneidad de la función Lambda como del tamaño del lote. Evalúe estas configuraciones en conjunto al evaluar el tamaño de sus consumidores.

Si el número de mensajes en vuelo es demasiado bajo para que se active el umbral de compartición de simultaneidad, la medición del tiempo compartido de procesamiento puede seguir detectando vecinos ruidosos. Sin embargo, las colas justas funcionan mejor cuando los consumidores procesan suficientes mensajes al mismo tiempo como para poder evaluar ambas medidas.