Usar o ID do grupo 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á.

Usar o ID do grupo de mensagens do Amazon SQS

MessageGroupId é a etiqueta que especifica que uma mensagem pertence a um grupo de mensagens específico. As mensagens que pertencem ao mesmo grupo de mensagens são sempre processadas uma a uma, em uma ordem estrita relativa ao grupo de mensagens (no entanto, as mensagens que pertencem a diferentes grupos de mensagens podem ser processadas fora de ordem).

Intercalar vários grupos de mensagens ordenadas

Para intercalar vários grupos de mensagens ordenadas em uma única fila FIFO, use valores de IDs de grupos de mensagens (por exemplo, os dados de sessão de vários usuários). Nesse cenário, vários consumidores podem processar a fila, mas os dados de sessão de cada usuário são processados em uma forma FIFO.

nota

Quando as mensagens que pertencem a um determinado ID de grupo de mensagens são invisíveis, nenhum outro consumidor pode processar mensagens com o mesmo ID de grupo de mensagens.

Evitar o processamento de duplicações em um sistema de vários produtores/consumidores

Para evitar o processamento de mensagens duplicadas em um sistema com vários produtores e consumidores em que a taxa de transferência e latência são mais importantes do que a ordenação, o produtor deve gerar um ID de grupo de mensagens exclusivo para cada mensagem.

nota

Nesse cenário, duplicações são eliminadas. No entanto, a ordem da mensagem não pode ser garantida.

Qualquer cenário com vários produtores e consumidores aumenta o risco de entregar acidentalmente uma mensagem duplicada se um operador não processa a mensagem dentro do tempo limite de visibilidade e a mensagem se torna disponível para outro operador.

Evitar ter um grande backlog de mensagens com o mesmo ID de grupo de mensagens

Para filas FIFO, pode haver no máximo de 20 mil mensagens em trânsito (recebidas de uma fila por um consumidor, mas ainda não excluídas da fila). Se você atingir essa cota, o Amazon SQS não retornará nenhuma mensagem de erro. Uma fila FIFO examina as primeiras 20.000 mensagens para determinar os grupos de mensagens disponíveis. Isso significa que, se você tiver uma lista de pendências de mensagens em um único grupo de mensagens, não será possível consumir mensagens de outros grupos de mensagens que foram enviadas para a fila posteriormente até que você consuma com êxito as mensagens da lista de pendências.

nota

Um backlog de mensagens que têm o mesmo ID de grupo de mensagens poderá ser criado devido a um consumidor que não consegue processar uma mensagem com êxito. Podem ocorrer problemas de processamento de mensagens devido a um problema com o conteúdo de uma mensagem ou devido a um problema técnico com o consumidor.

Para remover mensagens que não podem ser processadas repetidamente e desbloquear o processamento de outras mensagens que têm o mesmo ID de grupo de mensagens, considere configurar uma política de dead-letter queue.

Evitar reutilizar o mesmo ID de grupo de mensagens com filas virtuais

Para impedir que mensagens com o mesmo ID de grupo de mensagens enviadas para filas virtuais diferentes com a mesma fila de host bloqueiem umas às outras, evite reutilizar o mesmo ID de grupo de mensagens com filas virtuais.