Detalhes de ordenação de mensagens para tópicos FIFO - Amazon Simple Notification 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á.

Detalhes de ordenação de mensagens para tópicos FIFO

Um tópico FIFO do Amazon SNS sempre entrega mensagens para filas do Amazon SQS inscritas na ordem exata em que as mensagens são publicadas no tópico e somente uma vez. Com uma fila FIFO do Amazon SQS assinada, o consumidor da fila recebe as mensagens na ordem exata em que são entregues à fila, sem duplicatas. No entanto, com uma fila padrão do Amazon SQS assinada, o consumidor da fila pode receber mensagens fora de ordem e mais de uma vez. Isso permite uma maior dissociação entre assinantes e editores, oferecendo aos assinantes maior flexibilidade em termos de consumo de mensagens e otimização de custos, conforme mostrado no diagrama a seguir, com base no Exemplo de caso de uso de tópicos FIFO.

Entrega de mensagens estritamente ordenada em uma plataforma de comércio eletrônico de peças automotivas.

Observe que não há nenhuma ordenação implícita dos assinantes. O exemplo a seguir mostra que essa mensagem m1 é entregue primeiro ao assinante atacadista e, depois, ao assinante varejista e, então ao assinante analista. A mensagem m2 é entregue primeiro ao assinante varejista, depois, ao assinante atacadista e, por fim, ao assinante analista. Embora as duas mensagens sejam entregues aos assinantes em uma ordem diferente, a sequência das mensagens é preservada para cada assinante de FIFO do Amazon SQS. Cada assinante é percebido isoladamente de qualquer outro assinante.

Entrega de mensagens estritamente ordenada para cada assinante.

Se um assinante da fila do Amazon SQS se tornar inacessível, ele poderá ficar fora de sincronia. Por exemplo, digamos que o proprietário da fila da aplicação de atacado altere erroneamente a política de fila do Amazon SQS de uma maneira que impede que o principal de serviço do Amazon SNS entregue mensagens para a fila. Nesse caso, as entregas de atualização de preço à fila de atacado falham, enquanto as entregas às filas de varejo e análise são bem-sucedidas, fazendo com que os assinantes fiquem fora de sincronia. Quando o proprietário da fila da aplicação de atacado corrige a política de fila, o Amazon SNS retoma a entrega de mensagens para a fila inscrita. Todas as mensagens publicadas no tópico que se destinam à fila configurada incorretamente são descartadas, a menos que a assinatura tenha uma fila de mensagens não entregues configurada.

O assinante da fila de atacado torna-se temporariamente inacessível.

Você pode ter várias aplicações (ou várias threads dentro da mesma aplicação) publicando mensagens em um tópico FIFO do SNS em paralelo. Ao fazer isso, você efetivamente delega o sequenciamento de mensagens ao serviço Amazon SNS. Para determinar a sequência estabelecida de mensagens, você pode verificar o número de sequência.

O número de sequência é um número grande, não consecutivo que o Amazon SNS atribui a cada mensagem. O tamanho do número de sequência é de 128 bits e continua aumentando para cada grupo de mensagens. O número de sequência é passado para as filas do Amazon SQS inscritas como parte do corpo da mensagem. No entanto, se você habilitar a entrega de mensagens brutas, a mensagem entregue à fila do Amazon SQS não incluirá o número de sequência nem nenhum outro metadado de mensagens do Amazon SNS.

O Amazon SNS atribui um número de sequência exclusivo a cada mensagem e passa o número de sequência para o Amazon SQS.

Os tópicos FIFO do Amazon SNS definem pedidos no contexto de um grupo de mensagens. Para obter mais informações, consulte Agrupamento de mensagens para tópicos FIFO.