Detalhes de pedidos de SNS mensagens da Amazon 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 pedidos de SNS mensagens da Amazon para tópicos FIFO

Um SNS FIFO tópico da Amazon sempre entrega mensagens para SQS as filas inscritas da Amazon na ordem exata em que as mensagens são publicadas no tópico e somente uma vez. Com uma SQS FIFO fila da Amazon assinada, o consumidor da fila recebe as mensagens na ordem exata em que as mensagens são entregues à fila, sem duplicatas. Com uma fila SQS padrão da Amazon assinada, no entanto, 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 SNS FIFO tópico da Amazon.

Exemplo do sistema de entrega de mensagens em um tópico da Amazon SNS FIFO (First-In-First-Out), destacando como as mensagens são entregues consistentemente em uma ordem estrita às filas da Amazon. SQS FIFO Isso contrasta com o comportamento de uma fila SQS padrão da Amazon, na qual as mensagens podem chegar fora de ordem e mais de uma vez. O exemplo mostra três tipos diferentes de assinantes — uma função de análise, um aplicativo de atacado e um aplicativo de varejo — demonstrando como cada um recebe mensagens em ordem estrita ou na ordem de melhor esforço, dependendo do tipo de fila em que se inscreve.

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 ordem das mensagens é preservada para cada SQS FIFO assinante da Amazon. Cada assinante é percebido isoladamente de qualquer outro assinante.

Exemplo de como SNS FIFO os tópicos da Amazon e vários tipos de assinantes, incluindo a Amazon SQS FIFO e as filas padrão, lidam com pedidos e entregas de mensagens. Isso mostra que as mensagens são publicadas em um tópico e entregues em diferentes tipos de filas, garantindo a entrega ordenada para FIFO filas e a melhor ordenação para filas padrão. Essa configuração oferece suporte a cenários em uma plataforma de comércio eletrônico em que diferentes componentes precisam de entrega confiável de mensagens em uma ordem específica para um processamento preciso.

Se um assinante da Amazon SQS Queue ficar inacessível, ele poderá ficar fora de sincronia. Por exemplo, digamos que o proprietário da fila de aplicativos por atacado altere erroneamente a política de SQS filas da Amazon de forma a impedir que o responsável pelo SNS serviço da Amazon entregue mensagens à 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 de aplicativos por atacado corrige sua política de fila, a 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.

Exemplo do comportamento da entrega de mensagens em uma SNS FIFO configuração da Amazon em que as mensagens são publicadas para diferentes tipos de assinantes (atacado, varejo e análises) por meio de filas da AmazonSQS. Ele destaca o impacto de uma configuração incorreta da política de filas na sincronização da entrega de mensagens em diferentes filas de assinantes. O exemplo mostra como a entrega de mensagens falha para o assinante atacadista devido a um erro de política, mas continua com êxito para assinantes de varejo e análise, enfatizando a importância da configuração correta da fila para manter a entrega sincronizada dos dados. Esse cenário destaca a capacidade dos FIFO tópicos de garantir uma entrega ordenada e exata em circunstâncias normais e as consequências dos erros de configuração.

Você pode ter vários aplicativos (ou vários segmentos dentro do mesmo aplicativo) publicando mensagens em um SNS FIFO tópico em paralelo. Ao fazer isso, você delega efetivamente o sequenciamento de mensagens ao serviço da AmazonSNS. 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 e não consecutivo que a 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 SQS filas da Amazon inscritas como parte do corpo da mensagem. No entanto, se você habilitar a entrega de mensagens brutas, a mensagem entregue à SQS fila da Amazon não incluirá o número de sequência ou qualquer outro metadado de SNS mensagem da Amazon.

Exemplo de várias funções Lambda publicam mensagens em um tópico da Amazon SNS FIFO (First In, First Out), que então entrega essas mensagens para uma SQS FIFO fila da Amazon, preservando a ordem estrita do processamento de mensagens. Essa configuração é usada para garantir que as mensagens sejam processadas na ordem exata em que são enviadas em diferentes componentes de um aplicativo, com números de sequência indicando a ordem de cada mensagem em um grupo. Esse tipo de configuração é crucial para aplicativos em que a ordem das operações e mensagens deve ser rigorosamente mantida para garantir a consistência.

SNSFIFOOs tópicos da Amazon definem a ordenação no contexto de um grupo de mensagens. Para obter mais informações, consulte Agrupamento de SNS mensagens da Amazon para tópicos FIFO.