Desduplicação de mensagens do Amazon SNS para tópicos FIFO - Amazon Simple Notification Service

Desduplicação de mensagens do Amazon SNS para tópicos FIFO

Os tópicos FIFO do Amazon SNS e as filas FIFO do Amazon SQS oferecem suporte à desduplicação de mensagens, que fornece entrega e processamento de mensagens exatamente uma vez, desde que as seguintes condições sejam atendidas:

  • A fila FIFO do Amazon SQS inscrita existe e tem permissões para que a entidade principal de serviço do Amazon SNS entregue mensagens para a fila.

  • O consumidor de fila FIFO do Amazon SQS processa a mensagem e a exclui da fila antes que o tempo limite de visibilidade expire.

  • O tópico de assinatura do Amazon SNS não tem filtragem de mensagens. Quando você configura a filtragem de mensagens, os tópicos FIFO do Amazon SNS comportam a entrega no máximo uma vez, pois as mensagens podem ser filtradas com base em suas políticas de filtro de assinatura.

  • Não há interrupções de rede que impeçam a confirmação da entrega da mensagem.

nota

A desduplicação de mensagens aplica-se a um tópico FIFO do Amazon SNS inteiro, não a um grupo de mensagens individual.

Quando você publica uma mensagem em um tópico FIFO do Amazon SNS, a mensagem deve incluir um ID de desduplicação. Esse ID está incluído na mensagem que o tópico FIFO do Amazon SNS entrega às filas FIFO do Amazon SQS inscritas.

Se uma mensagem com um ID de desduplicação específico for publicada com êxito em um tópico FIFO do SNS, qualquer mensagem publicada com o mesmo ID de desduplicação, dentro do intervalo de desduplicação de cinco minutos, será aceita, mas não entregue. O tópico FIFO do Amazon SNS continua a rastrear o ID de desduplicação da mensagem, mesmo depois que a mensagem é entregue aos endpoints inscritos.

Se houver garantia de que o corpo da mensagem será exclusivo para cada mensagem publicada, você poderá habilitar a desduplicação baseada em conteúdo para um tópico FIFO do Amazon SNS e as filas FIFO do Amazon SQS inscritas. O Amazon SNS usa o corpo da mensagem para gerar um valor de hash exclusivo a ser usado como o ID de desduplicação para cada mensagem, portanto, você não precisa definir um ID de desduplicação ao enviar cada mensagem.

nota

Os atributos de mensagem não estão incluídos no cálculo de hash.

Quando a desduplicação baseada em conteúdo é habilitada para um tópico FIFO do Amazon SNS e uma mensagem é publicada com uma ID de desduplicação, a ID de desduplicação publicada substitui a ID de desduplicação baseada em conteúdo gerada.

No caso de uso de exemplo de gerenciamento de preços de peças automotivas, a empresa deve definir um ID de desduplicação universalmente exclusivo para cada atualização de preço. Isso ocorre porque o corpo da mensagem pode ser idêntico mesmo quando o atributo de mensagem é diferente para atacado e varejo. No entanto, se a empresa adicionasse o tipo de negócio (atacado ou varejo) ao corpo da mensagem com o ID e o preço do produto, ela poderia permitir a duplicação baseada em conteúdo no tópico FIFO do Amazon SNS e nas filas FIFO do Amazon SQS inscritas.

Como a desduplicação de mensagens funciona em um ambiente de tópicos FIFO (First In, First Out) do Amazon SNS, usando um exemplo de gerenciamento de preços de autopeças. Mostra como mensagens duplicadas (m1) publicadas no tópico FIFO do Amazon SNS são impedidas de serem entregues várias vezes aos sistemas do assinante (filas de atacado, varejo e análises). Essa desduplicação garante que somente mensagens exclusivas sejam processadas, aumentando a eficiência e a precisão no tratamento de mensagens em diferentes funções do assinante.

Além da ordenação de mensagens e desduplicação, os tópicos FIFO do Amazon SNS são compatíveis com a criptografia do lado do servidor (SSE) de mensagens com chaves do AWS KMS e privacidade de mensagens por meio de endpoints da VPC com AWS PrivateLink. Para ter mais informações, consulte Segurança de mensagens do Amazon SNS para tópicos FIFO.