

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á.

# Lógica de entrega de filas FIFO no Amazon SQS
<a name="FIFO-queues-understanding-logic"></a>

Os conceitos a seguir esclarecem como as filas FIFO do Amazon SQS lidam com o envio e o recebimento de mensagens, especialmente quando lidam com pedidos e grupos de mensagens. IDs

## Enviar mensagens
<a name="FIFO-sending-messages"></a>

As filas FIFO do Amazon SQS preservam a ordem das mensagens usando IDs desduplicação e grupo de mensagens exclusivos. IDs Este tópico destaca a importância do grupo de mensagens IDs para manter uma ordem rigorosa dentro dos grupos e destaca as melhores práticas para garantir a entrega confiável e ordenada de mensagens entre vários produtores.

1. **Preservação da ordem**
   + Quando várias mensagens são enviadas sucessivamente para uma fila FIFO com desduplicação exclusiva de mensagens, o IDs Amazon SQS as armazena e confirma sua transmissão. Essas mensagens serão, então, recebidas e processadas na ordem exata em que foram transmitidas.

1. **ID do grupo de mensagens**
   + Em filas FIFO, as mensagens são ordenadas com base no ID de grupo de mensagens. Se vários produtores ou threads enviarem mensagens com o mesmo ID de grupo de mensagens, o Amazon SQS garante que elas sejam armazenadas e processadas na ordem em que chegarem.
   + Prática recomendada: para garantir uma ordem estrita das mensagens entre vários produtores, atribua um ID de grupo de mensagens exclusivo para todas as mensagens de cada produtor.

1. **Ordenar por grupo**
   + **A lógica da fila FIFO aplica-se de acordo com o ID do grupo de mensagens:**
     + Cada ID de grupo de mensagens representa um grupo distinto e ordenado.
     + Para cada ID de grupo de mensagens, todas as mensagens são enviadas e recebidas na ordem estrita.
     + Mensagens com grupos de mensagens diferentes IDs podem chegar ou ser processadas fora de ordem uma em relação à outra.
   + **Obrigatório**: você deve associar um ID de grupo de mensagens a cada mensagem. Se uma mensagem for enviada sem um ID de grupo, a ação falhará.
   + **Cenário de grupo único**: se você precisar que todas as mensagens sejam processadas em ordem estrita, use o mesmo ID de grupo de mensagens para cada mensagem.

## Recebimento de mensagens
<a name="FIFO-receiving-messages"></a>

As filas FIFO do Amazon SQS lidam com a recuperação de mensagens, incluindo processamento em lote, garantias de pedidos FIFO e limitações na solicitação de um grupo de mensagens específico. IDs Este tópico explica como o Amazon SQS recupera mensagens dentro e entre grupos de mensagens, IDs mantendo regras rígidas de ordenação e visibilidade.

1. **Recuperação em lote**
   + Ao receber mensagens de uma fila FIFO com vários grupos de mensagens IDs, o Amazon SQS:
     + Tenta retornar o máximo de mensagens possível com o mesmo ID de grupo em uma única chamada.
     + Permite que outros consumidores processem mensagens de diferentes grupos de mensagens IDs simultaneamente.
   + **Esclarecimento importante**
     + Você pode receber várias mensagens do mesmo ID de grupo de mensagens em um lote (até 10 mensagens em uma única chamada usando o parâmetro `MaxNumberOfMessages`).
     + No entanto, você não poderá receber mensagens adicionais do mesmo ID de grupo de mensagens em solicitações subsequentes até que:
       + As mensagens atualmente recebidas sejam excluídas ou
       + Elas se tornem visíveis novamente (por exemplo, após o tempo limite de visibilidade expirar).

1. **Garantia de ordem FIFO**
   + As mensagens recuperadas em um lote mantêm sua ordem FIFO dentro do grupo.
   + Se menos de 10 mensagens estiverem disponíveis para o mesmo ID de grupo de mensagens, o Amazon SQS poderá incluir mensagens de outro grupo de mensagens IDs no mesmo lote, mas cada grupo retém a ordem FIFO.

1. **Limitações do consumidor**
   + Você não pode solicitar explicitamente o recebimento de mensagens de um ID de grupo de mensagens específico.

## Repetir várias vezes
<a name="FIFO-retrying-multiple-times"></a>

Produtores e consumidores podem repetir com segurança ações que falharam nas filas FIFO do Amazon SQS sem interromper a ordem das mensagens ou introduzir duplicatas. Este tópico destaca como os tempos limite de desduplicação IDs e visibilidade garantem a integridade da mensagem durante novas tentativas.

1. **Novas tentativas do produtor**
   + Se uma ação [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html) falhar, o produtor pode tentar novamente enviar a mensagem várias vezes com o mesmo ID de desduplicação de mensagens.
   + Desde que o produtor receba pelo menos uma confirmação antes que o intervalo de desduplicação expire, as novas tentativas:
     + Não introduzem mensagens duplicadas.
     + Não interrompem a ordem das mensagens.

1. **Novas tentativas do consumidor**
   + Se a ação [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ReceiveMessage.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ReceiveMessage.html) falhar, o consumidor pode tentar novamente quantas vezes forem necessárias usando o mesmo ID de tentativa de solicitação de recebimento.
   + Desde que o consumidor receba pelo menos uma confirmação antes que o tempo limite de visibilidade expire, as novas tentativas:
     + Não interrompem a ordem das mensagens.

## Notas adicionais sobre o comportamento de FIFO
<a name="FIFO-behavior"></a>

Saiba mais sobre como lidar com os tempos limite de visibilidade, habilitar o processamento paralelo com vários grupos IDs de mensagens e garantir o processamento sequencial estrito em cenários de grupo único.

1. **Gerenciar o tempo limite de visibilidade**
   + Quando uma mensagem é recuperada, mas não excluída, ela permanece invisível até que o tempo limite de visibilidade expire.
   + Nenhuma mensagem adicional do mesmo ID de grupo de mensagens será retornada até que a primeira mensagem seja excluída ou fique visível novamente.

1. **Simultaneidade e processamento paralelo**
   + As filas FIFO permitem o processamento paralelo de mensagens em diferentes grupos de mensagens. IDs
   + Para maximizar a simultaneidade, projete seu sistema com vários grupos de mensagens IDs para fluxos de trabalho independentes.

1. **Cenários de grupo único**
   + Para o processamento sequencial estrito de todas as mensagens em uma fila FIFO, use um único ID de grupo de mensagens para todas as mensagens na fila.

## Exemplos para uma melhor compreensão
<a name="FIFO-examples"></a>

A seguir estão cenários práticos que ilustram o comportamento da fila FIFO no Amazon SQS.

1. **Cenário 1: ID de grupo único**
   + Um produtor envia cinco mensagens com o mesmo ID de grupo de mensagens, Grupo A.
   + Um consumidor recebe essas mensagens na ordem FIFO. Até que o consumidor exclua essas mensagens ou o tempo limite de visibilidade expire, nenhuma mensagem adicional do Grupo A será recebida.

1. **Cenário 2: Vários grupos IDs**
   + Um produtor envia cinco mensagens para o Grupo A e 5 para o Grupo B.
   + O Consumidor 1 processa as mensagens do Grupo A, enquanto o Consumidor 2 processa as mensagens do Grupo B. Isso permite o processamento paralelo com ordenação estrita mantida dentro de cada grupo.

1. **Cenário 3: recuperação em lote**
   + Um produtor envia sete mensagens para o Grupo A e três para o Grupo B.
   + Até 10 mensagens podem ser recuperadas por um único consumidor. Se a fila permitir, poderá retornar:
     + Sete mensagens do Grupo A e três do Grupo B (ou menos, se houver menos mensagens disponíveis em um único grupo).