Cuotas de mensajes 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.

Cuotas de mensajes de Amazon SQS

En la siguiente tabla se muestran las cuotas relacionadas con los mensajes.

Cuota Descripción
ID de mensaje por lotes Un ID de mensaje por lotes puede tener hasta 80 caracteres. Se aceptan los siguientes caracteres: caracteres alfanuméricos, guiones (-) y guiones bajos (_).
Atributos de mensajes Un mensaje puede contener hasta 10 atributos de metadatos.
Lote de mensajes

Una única solicitud por lotes de mensajes puede incluir un máximo de 10 mensajes. Para obtener más información, consulte Configurando un mazonSQSBuffered AsyncClient en la sección Acciones SQS por lotes de Amazon.

Contenido de los mensajes

Un mensaje solo puede incluir XML, JSON y texto sin formato. Se permiten los siguientes caracteres Unicode: #x9 | #xA | #xD | #x20 a #xD7FF | #xE000 a #xFFFD | #x10000 a #x10FFFF

Cualquier carácter que no esté incluido en esta lista se rechazará. Para obtener más información, consulte la especificación W3C respecto a los caracteres.

ID de grupo de mensajes

Consuma los mensajes de las tareas pendientes para evitar crear una gran cantidad de mensajes pendientes con el mismo ID de grupo de mensajes.

MessageGroupId es obligatorio para las colas FIFO. No puede utilizar esta opción para las colas estándar.

Debe asociar un MessageGroupId que no esté vacío con un mensaje. Si no proporciona un MessageGroupId, la acción genera un error.

La longitud de MessageGroupId es de 128 caracteres. Valores válidos: caracteres alfanuméricos y signos de puntuación (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~).

Retención de mensajes De forma predeterminada, un mensaje se conserva durante 4 días. El mínimo es 60 segundos (1 minuto). El máximo es 1 209 600 segundos (14 días).
Capacidad de procesamiento de mensajes

Colas estándar

Las colas estándar admiten un número muy alto, casi ilimitado de llamadas a la API por segundo, por acción (SendMessage, ReceiveMessage o DeleteMessage). Este alto rendimiento las hace ideales para casos de uso que requieren procesar grandes volúmenes de mensajes con rapidez, como el flujo de datos en tiempo real o las aplicaciones a gran escala. Si bien las colas estándar se escalan automáticamente en función de la demanda, es fundamental supervisar los patrones de uso para garantizar un rendimiento óptimo, especialmente en regiones con mayores cargas de trabajo.

Colas FIFO

  • Cada partición de una cola FIFO está limitada a 300 transacciones por segundo por acción de la API (SendMessage, ReceiveMessage, y DeleteMessage). Este límite se aplica específicamente al modo de rendimiento no alto. Al cambiar al modo de alto rendimiento, puede superar este límite predeterminado. Para activar el modo de alto rendimiento, consulte Habilitación del alto rendimiento para las colas FIFO en Amazon SQS.

  • Si utiliza procesamiento por lotes, las colas FIFO de rendimiento no alto admiten hasta 3000 mensajes por segundo y por método de la API (SendMessage, ReceiveMessage y DeleteMessage). Los 3000 mensajes por segundo representan 300 llamadas a la API, cada una con un lote de 10 mensajes.

Alto rendimiento para las colas FIFO

Los límites de FIFO de Amazon SQS se basan en el número de solicitudes de API, no en los límites de mensajes. Para el modo de alto rendimiento, estos límites de solicitudes de API son los siguientes:

Límites de rendimiento de las transacciones (llamadas a la API sin procesamiento por lotes)

Estos límites definen la frecuencia con la que cada operación de la API (como SendMessage, ReceiveMessage o DeleteMessage) se puede realizar de forma independiente, lo que garantiza un rendimiento eficiente del sistema dentro de las transacciones por segundo (TPS) permitidas.

Los siguientes límites se basan en las llamadas a la API no agrupadas en lotes:

  • Este de EE. UU. (Norte de Virginia), Oeste de EE. UU. (Oregón) y Europa (Irlanda): hasta 70 000 transacciones por segundo (TPS).

  • Este de EE. UU. (Ohio) y Europa (Fráncfort): hasta 19 000 TPS.

  • Asia-Pacífico (Bombay), Asia-Pacífico (Sídney), Asia-Pacífico (Singapur) y Asia-Pacífico (Tokio): hasta 9000 TPS.

  • Europa (Londres) y América del Sur (São Paulo): hasta 4500 TPS.

  • Todas las demás Regiones de AWS: rendimiento predeterminado de 2400 TPS.

Maximizar el rendimiento con el procesamiento por lotes

Procese varios mensajes en una sola llamada a la API, lo que aumenta considerablemente la eficiencia. En lugar de gestionar por lotes, puede enviar, recibir o eliminar hasta diez mensajes en una sola solicitud de la API. Esto reduce el número total de llamadas a la API, lo que le permite procesar más mensajes por segundo y, al mismo tiempo, mantenerse dentro de los límites de transacciones (TPS) de la región, lo que maximiza el rendimiento y el rendimiento del sistema. Para obtener más información, consulte Aumentar el rendimiento mediante el escalado horizontal y el procesamiento por lotes de acciones con Amazon SQS.

Los siguientes límites se basan en las llamadas a la API agrupadas en lotes:

  • Este de EE. UU. (Norte de Virginia), Oeste de EE. UU. (Oregón) y Europa (Irlanda): hasta 700 000 mensajes por segundo (diez veces el límite de 70 000 TPS sin lotes).

  • Este de EE. UU. (Ohio) y Europa (Fráncfort): hasta 190 000 mensajes por segundo.

  • Asia-Pacífico (Bombay), Asia-Pacífico (Sídney), Asia-Pacífico (Singapur) y Asia-Pacífico (Tokio): hasta 90 000 mensajes por segundo.

  • Europa (Londres) y América del Sur (São Paulo): hasta 45 000 mensajes por segundo.

  • Todas las demás Regiones de AWS: hasta 24 000 mensajes por segundo.

Optimización del rendimiento más allá del procesamiento por lotes

Si bien el procesamiento por lotes puede aumentar considerablemente el rendimiento, es importante considerar otras estrategias para optimizar el rendimiento de FIFO:

  • Distribuya los mensajes entre varios identificadores de grupos de mensajes: dado que los mensajes de un solo grupo se procesan de forma secuencial, distribuir la carga de trabajo entre varios grupos de mensajes permite un mejor paralelismo y un mayor rendimiento general. Para obtener más información, consulte Particiones y distribución de datos para obtener alto rendimiento en las colas FIFO de SQS.

  • Uso eficiente de las llamadas a la API: minimice las llamadas a la API innecesarias, como los cambios frecuentes de visibilidad o la eliminación repetida de mensajes, para optimizar el uso de TPS disponible y mejorar la eficiencia.

  • Utilice sondeos prolongados: utilice sondeos prolongados estableciendo WaitTimeSeconds en las solicitudes de recepción para reducir las respuestas vacías cuando no haya mensajes disponibles, reducir las llamadas innecesarias a la API y aprovechar mejor su cuota de TPS.

  • Solicite aumentos de rendimiento: si su aplicación requiere un rendimiento superior a los límites predeterminados, solicite un aumento mediante la consola de Service Quotas. Esto puede ser necesario para cargas de trabajo de alta demanda o en regiones con límites predeterminados más bajos. Para activar el modo de alto rendimiento, consulte Habilitación del alto rendimiento para las colas FIFO en Amazon SQS.

Temporizador de mensajes El retraso predeterminado (mínimo) de un mensaje es de 0 segundos. El valor máximo es de 15 minutos.
Tamaño del mensaje

El tamaño mínimo de los mensajes es de 1 byte (1 carácter). El máximo es de 262 144 bytes (256 KiB).

Para enviar mensajes de más de 256 KiB, puede utilizar la biblioteca de clientes ampliada de Amazon SQS para Java o la biblioteca de clientes ampliada de Amazon SQS para Python. Esta biblioteca le permite enviar un mensaje de Amazon SQS que contiene una referencia a una carga de mensajes de Amazon S3. El tamaño de carga máximo es 2 GB.

nota

Esta biblioteca ampliada solo funciona para clientes síncronos.

Tiempo de espera de visibilidad de los mensajes El tiempo de espera de visibilidad predeterminado de un mensaje es de 30 segundos. El mínimo es de 0 segundos. El máximo es de 12 horas.
Información de políticas La cuota máxima es 8192 bytes, 20 instrucciones, 50 entidades principales o 10 condiciones. Para obtener más información, consulte Cuotas de políticas de Amazon SQS.