Cotas de mensagens do Amazon SQS - Amazon Simple Queue Service

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Cotas de mensagens do Amazon SQS

A tabela a seguir lista as cotas relacionadas a mensagens.

Quota Descrição
ID de mensagem em lote O ID da mensagem em lote pode ter até 80 caracteres. Os seguintes caracteres são aceitos: caracteres alfanuméricos, hifens (-) e sublinhados (_).
Atributos de mensagens Uma mensagem pode conter até 10 atributos de metadados.
Lote de mensagens

Uma única solicitação em lote de mensagens pode incluir um máximo de 10 mensagens. Para obter mais informações, consulte Configurando a Amazon SQSBuffered AsyncClient na seção Ações em lote do Amazon SQS.

Conteúdo da mensagem

Uma mensagem pode incluir apenas XML, JSON e texto não formatado. Os seguintes caracteres Unicode são permitidos: #x9 | #xA | #xD | #x20 até #xD7FF | #xE000 até #xFFFD | #x10000 até #x10FFFF

Os caracteres não incluídos nesta lista serão rejeitados. Para obter mais informações, consulte a Especificação W3C para caracteres.

ID do grupo de mensagens

Consuma mensagens do backlog para evitar o acúmulo de um grande backlog de mensagens com o mesmo ID de grupo de mensagens.

MessageGroupId é necessário para filas FIFO. Você não pode usá-lo para filas padrão.

Você deve associar um MessageGroupId não vazio com uma mensagem. Se você não fornecer um MessageGroupId, a ação resultará em falha.

O tamanho máximo de MessageGroupId é 128 caracteres. Valores válidos: caracteres alfanuméricos e pontuação (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~).

Retenção da mensagem Por padrão, uma mensagem será retida por 4 dias. A duração mínima é de 60 segundos (1 minuto). A configuração máxima é de 1.209.600 seconds (14 dias).
Taxa de transferência da mensagem

Filas padrão

As filas padrão permitem um número muito alto e quase ilimitado de chamadas de API por segundo, por ação (SendMessage, ReceiveMessage ou DeleteMessage). Esse throughput alto as torna ideais para casos de uso que exigem o processamento rápido de grandes volumes de mensagens, como fluxo de dados em tempo real ou aplicações de grande escala. Embora as filas padrão sejam escaladas automaticamente de acordo com a demanda, é essencial monitorar os padrões de uso para garantir o desempenho ideal, especialmente em regiões com workloads mais altas.

Filas FIFO

  • Cada partição em uma fila FIFO é limitada a 300 transações por segundo, por ação de API (SendMessage, ReceiveMessage, e DeleteMessage). Esse limite se aplica especificamente ao modo de throughput não alto. Ao alternar para o modo de throughput alto, é possível ultrapassar esse limite padrão. Consulte como habilitar o modo de throughput alto em Habilitar throughput alto para filas FIFO no Amazon SQS.

  • Se você usa o agrupamento em lote, as filas FIFO de throughput não alto permitem até 3 mil mensagens por segundo, por ação de API (SendMessage, ReceiveMessage e DeleteMessage). As 3 mil mensagens por segundo representam 300 chamadas de API, cada uma com um lote de 10 mensagens.

Alta taxa de transferência para filas FIFO

Os limites de FIFO do Amazon SQS são baseados no número de solicitações de API, não nos limites de mensagens. Estes são os limites de solicitação de API no modo de throughput alto:

Limites de throughput de transações (chamadas de API não agrupadas em lote)

Esses limites definem com que frequência cada operação de API (como SendMessage, ReceiveMessage ou DeleteMessage) pode ser executada de forma independente, garantindo um desempenho eficiente do sistema dentro das transações permitidas por segundo (TPS).

Os seguintes limites são baseados em chamadas de API não agrupadas em lote:

  • Leste dos EUA (N. da Virgínia), Oeste dos EUA (Oregon) e Europa (Irlanda): até 70 mil transações per second (TPS).

  • Leste dos EUA (Ohio) e Europa (Frankfurt): até 19 mil TPS.

  • Ásia-Pacífico (Mumbai), Ásia-Pacífico (Singapura), Ásia-Pacífico (Sydney) e Ásia-Pacífico (Tóquio): até 9 mil TPS.

  • Europa (Londres) e América do Sul (São Paulo): até 4.500 TPS.

  • Todas as outras Regiões da AWS: throughput padrão de 2.400 TPS.

Maximizar o throughput com o agrupamento em lote

Processa várias mensagens em uma única chamada de API, o que aumenta significativamente a eficiência. Em vez de lidar com cada mensagem individualmente, o processamento em lote permite que você envie, receba ou exclua até dez mensagens em uma única solicitação de API. Isso reduz o número total de chamadas de API, permitindo que você processe mais mensagens por segundo enquanto permanece dentro dos limites de transação (TPS) da região, maximizando o throughput e o desempenho do sistema. Para ter mais informações, consulte Aumento do throughput usando escalabilidade horizontal e processamento de ações em lote com o Amazon SQS.

Os seguintes limites são baseados em chamadas de API agrupadas em lote:

  • Leste dos EUA (N. da Virgínia), Oeste dos EUA (Oregon) e Europa (Irlanda): até 700 mil mensagens por segundo (10 vezes o limite de 70 mil TPS).

  • Leste dos EUA (Ohio) e Europa (Frankfurt): até 190 mil mensagens por segundo.

  • Ásia-Pacífico (Mumbai), Ásia-Pacífico (Singapura), Ásia-Pacífico (Sydney) e Ásia-Pacífico (Tóquio): até 90 mil mensagens por segundo.

  • Europa (Londres) e América do Sul (São Paulo): até 45 mil mensagens por segundo.

  • Todas as outras Regiões da AWS: até 24 mil mensagens por segundo.

Otimizar o throughput além do agrupamento em lote

Embora o agrupamento em lote possa aumentar consideravelmente o throughput, é importante considerar outras estratégias para otimizar o desempenho de filas FIFO:

  • Distribuir mensagens em vários IDs de grupos de mensagens: como as mensagens em um único grupo são processadas sequencialmente, distribuir a workload em vários grupos de mensagens permite um melhor paralelismo e um throughput maior geral. Para ter mais informações, consulte Partições e distribuição de dados para alta taxa de transferência para filas FIFO do SQS.

  • Usar chamadas de API com eficiência: minimize chamadas de API desnecessárias, como alterações frequentes de visibilidade ou exclusões de mensagens repetidas, para otimizar o uso do TPS disponível e melhorar a eficiência.

  • Usar recebimentos de sondagem longa: utilize sondagem longa definindo WaitTimeSeconds nas solicitações de recebimento para reduzir respostas vazias quando nenhuma mensagem estiver disponível, diminuindo chamadas de API desnecessárias e fazendo melhor uso de sua cota de TPS.

  • Solicitar aumento de throughput: se a aplicação exigir um throughput maior do que os limites padrão, solicite um aumento usando o console do Service Quotas. Isso pode ser necessário para workloads de alta demanda ou em regiões com limites padrão mais baixos. Consulte como habilitar o modo de throughput alto em Habilitar throughput alto para filas FIFO no Amazon SQS.

Temporizador de mensagem O atraso padrão (mínimo) para uma mensagem é 0 segundo. O máximo é 15 minutos.
Tamanho da mensagem

O tamanho mínimo da mensagem é de 1 byte (1 caractere). O comprimento máximo é 262.144 bytes (256 KiB).

Para enviar mensagens maiores de 256 KiB, use a biblioteca do cliente em versão ampliada para Java do Amazon SQS e a biblioteca do cliente em versão ampliada para Python do Amazon SQS. Essa biblioteca permite que você envie uma mensagem do Amazon SQS que contenha uma referência à carga útil de uma mensagem no Amazon S3. O tamanho máximo de carga é 2 GB.

nota

Essa biblioteca em versão ampliada funciona somente para clientes síncronos.

Tempo limite de visibilidade da mensagem O tempo limite de visibilidade padrão para uma mensagem é de 30 segundos. O mínimo é 0 segundo. O máximo é 12 horas.
Informações de política A cota máxima é 8.192 bytes, 20 declarações, 50 principais ou 10 condições. Para ter mais informações, consulte Cotas de política do Amazon SQS.