Alto rendimiento para las colas FIFO - 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.

Alto rendimiento para las colas FIFO

El alto rendimiento de las colas FIFO admite un mayor número de solicitudes por API y por segundo. Para aumentar el número de solicitudes en alto rendimiento para las colas FIFO, puede aumentar el número de grupos de mensajes que utiliza. Para obtener más información sobre las cuotas de mensajes de alto rendimiento, consulte Service Quotas de Amazon SQS en la Referencia general de Amazon Web Services. Para obtener información sobre las cuotas por cola con un alto rendimiento para las cuotas FIFO, consulte Cuotas relacionadas con los mensajes y Particiones y distribución de datos para obtener alto rendimiento en las colas FIFO de SQS.

Particiones y distribución de datos para obtener alto rendimiento en las colas FIFO de SQS

Amazon SQS almacena los datos de la cola FIFO en particiones. Una partición es una asignación de almacenamiento para una cola que se replica automáticamente en varias zonas de disponibilidad de una región de AWS. Usted no administra las particiones. En su lugar, Amazon SQS se encarga de la administración de particiones.

Para las colas FIFO, Amazon SQS modifica el número de particiones de una cola en las siguientes situaciones:

  • Si la tasa de solicitudes actual se aproxima o supera lo que pueden admitir las particiones existentes, se asignan particiones adicionales hasta que la cola alcanza la cuota regional. Para obtener información sobre las cuotas, consulte Cuotas relacionadas con los mensajes.

  • Si las particiones actuales se utilizan poco, es posible que se reduzca el número de particiones.

La administración de las particiones tiene lugar automáticamente en segundo plano y es transparente para las aplicaciones. Su cola y sus mensajes están disponibles en todo momento.

Distribución de los datos por ID de grupo de mensajes

Para agregar un mensaje a una cola FIFO, Amazon SQS utiliza el valor del ID de grupo de mensajes de cada mensaje como entrada a una función hash interna. El valor del resultado de la función hash determina la partición que almacena el mensaje.

En el siguiente diagrama se muestra una tabla denominada que abarca varias particiones. El ID de grupo de mensajes de la cola se basa en el número de elemento. Amazon SQS utiliza la función hash para determinar dónde se almacenará un nuevo elemento; en este caso, se basa en el valor hash de la cadena item0. Tenga en cuenta que los elementos se almacenan en el mismo orden en el que se agregan a la cola. La ubicación de cada elemento viene determinada por el valor hash de su ID de grupo de mensajes.


        Una cola abarca varias particiones.
nota

Amazon SQS se ha optimizado para una distribución uniforme de los elementos entre las particiones de una cola FIFO, independientemente del número de particiones. AWS recomienda utilizar identificadores de grupos de mensajes que puedan tener un gran número de valores distintos.

Optimización de la utilización de particiones

Cada partición admite hasta 3000 mensajes por segundo con procesamiento por lotes o hasta 300 mensajes por segundo para operaciones de envío, recepción y eliminación en las regiones compatibles. Para obtener más información sobre las cuotas de mensajes de alto rendimiento, consulte Service Quotas de Amazon SQS en la Referencia general de Amazon Web Services.

Cuando se utilizan las API por lotes, cada mensaje se enruta según el proceso descrito en Distribución de los datos por ID de grupo de mensajes. Los mensajes que se enrutan a la misma partición se agrupan y procesan en una única transacción.

Para optimizar la utilización de particiones para la API SendMessageBatch, AWS recomienda agrupar por lotes los mensajes con los mismos ID de grupo de mensajes siempre que sea posible.

A fin de optimizar la utilización de las particiones para las API DeleteMessageBatch y ChangeMessageVisibilityBatch, AWS recomienda utilizar solicitudes ReceiveMessage con el parámetro MaxNumberOfMessages establecido a 10 y procesar por lotes los identificadores de recepción devueltos por una única solicitud ReceiveMessage.

En el siguiente ejemplo, se envía un lote de mensajes con varios ID de grupo de mensajes. El lote se divide en tres grupos, cada uno de los cuales cuenta para la cuota de la partición.


        Un lote de mensajes con diferentes ID de grupo de mensajes se almacena en particiones.
nota

Amazon SQS solo garantiza que los mensajes con la misma función hash interna de ID de grupo de mensajes se agrupen en una solicitud por lotes. En función del resultado de la función hash interna y del número de particiones, se podrían agrupar los mensajes con ID de grupo de mensajes diferentes. Dado que la función hash o el número de particiones pueden cambiar en cualquier momento, los mensajes agrupados en un momento dado pueden no estarlo más adelante.

Habilitar el alto rendimiento para las colas FIFO

Puede habilitar el alto rendimiento para cualquier cola FIFO nueva o existente. Esta característica incluye tres nuevas opciones a la hora de crear y editar colas FIFO:

  • Habilitar FIFO de alto rendimiento: aumenta el rendimiento de los mensajes en la cola FIFO actual.

  • Ámbito de desduplicación: Especifica si la desduplicación se produce en el nivel de cola o de grupo de mensajes..

  • Límite de rendimiento FIFO: especifica si la cuota de rendimiento de los mensajes en la cola FIFO se establece en el nivel de cola o de grupo de mensajes..

Para habilitar un alto rendimiento en una cola FIFO (consola)
  1. Inicie la creación o edición de una cola FIFO.

  2. Cuando especifique las opciones para la cola, elija Habilitar FIFO de alto rendimiento.

    La activación del alto rendimiento para las colas FIFO establece las opciones relacionadas de la siguiente manera:

    • Ámbito de desduplicación se establece a Grupo de mensajes, la configuración necesaria para utilizar alto rendimiento en las colas FIFO.

    • Límite de rendimiento FIFO se establece a Por ID de grupo de mensajes, la configuración necesaria para utilizar alto rendimiento en las colas FIFO.

    Si cambia alguna de las configuraciones necesarias para utilizar colas FIFO de alto rendimiento, el rendimiento normal estará en vigor para la cola y la desduplicación se producirá según lo especificado.

  3. Continúe con la especificación de todas las opciones para la cola. Cuando termine, elija Crear cola o Guardar.

Tras crear o editar la cola FIFO, puede enviar mensajes a ella y recibir y eliminar mensajes, todo ello en un TPS superior. Para obtener información de las cuotas de alto rendimiento, consulte Rendimiento de mensajes en Cuotas relacionadas con los mensajes.