Détails d'ordre des messages pour les rubriques FIFO - Amazon Simple Notification Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Détails d'ordre des messages pour les rubriques FIFO

Une rubrique FIFO Amazon SNS distribue toujours des messages aux files d'attente Amazon SQS abonnées dans l'ordre exact dans lequel les messages sont publiés dans la rubrique et une seule fois. Avec une file d'attente FIFO Amazon SQS abonnée, le consommateur de la file d’attente reçoit les messages dans l'ordre exact dans lequel ils sont envoyés à la file d'attente, sans doublons. Avec une file d'attente standard SQS abonnée, le consommateur de la file d'attente peut recevoir des messages dans le désordre et ce, plusieurs fois. Cela permet de mieux dissocier les abonnés des diffuseurs de publication, offrant ainsi aux abonnés une plus grande flexibilité en termes de consommation de messages et d'optimisation des coûts, comme le montre le schéma suivant basé sur le Cas d'utilisation d'exemple de rubrique FIFO.

Distribution de messages strictement ordonnée dans une plateforme de e-commerce de pièces automobiles.

Notez qu'il n'y a pas d'ordre implicite des abonnés. L'exemple suivant montre que le message m1 est d'abord distribué à l'abonné de gros, puis à l'abonné de détail, puis à l’abonné d’analyse. Le message m2 est d'abord distribué à l'abonné de détail, puis à l'abonné de gros et enfin à l’abonné d’analyse. Bien que les deux messages soient distribué aux abonnés dans un ordre différent, l'ordre des messages est conservé pour chaque abonné FIFO Amazon SQS. Chaque abonné est perçu indépendamment de tout autre abonné.

Distribution de messages strictement ordonnée pour chaque abonné.

Si un abonné de file d'attente Amazon SQS devient inaccessible, il peut se désynchroniser. Par exemple, supposons que le propriétaire de la file d'attente d'application de gros modifie par erreur la politique de file d'attente Amazon SQS d'une manière qui empêche le principal de service Amazon SNS de distribuer des messages à la file d'attente. Dans ce cas, les envois des mises à jour des prix à la file d'attente de gros échouent, tandis que les envois aux files d’attente de détail et d’analyse réussissent, ce qui entraîne une désynchronisation des abonnés. Lorsque le propriétaire de la file d'attente de l'application de gros corrige sa politique de file d'attente, Amazon SNS reprend la distribution des messages à la file d'attente abonnée. Tous les messages publiés dans la rubrique qui ciblent la file d'attente qui n'était pas correctement configurée sont supprimés, sauf si l'abonnement correspondant dispose d'une file d'attente de lettres mortes configurée.

L'abonné de la file d'attente de gros devient temporairement inaccessible.

Vous pouvez avoir plusieurs applications (ou plusieurs threads au sein d'une même application) qui publient des messages vers une rubrique FIFO SNS en parallèle. Lorsque vous effectuez cette opération, vous déléguez effectivement le séquençage des messages au service Amazon SNS. Pour déterminer la séquence de messages établie, vous pouvez vérifier le numéro de séquence.

Le numéro de séquence est un grand numéro, non consécutif, qu'Amazon SNS attribue à chaque message. La longueur du numéro de séquence est de 128 bits et continue d'augmenter pour chaque groupe de messages. Le numéro de séquence est transmis aux files d'attente Amazon SQS abonnées dans le corps du message. Toutefois, si vous activez la distribution de messages bruts, le message qui est distribué à la file d'attente Amazon SQS n'inclut pas le numéro de séquence ou d'autres métadonnées de message Amazon SNS.

Amazon SNS attribue un numéro de séquence unique à chaque message et transmet le numéro de séquence à Amazon SQS.

Les rubriques FIFO d'Amazon SNS définissent l'ordre dans le contexte d'un groupe de messages. Pour de plus amples informations, consultez Regroupement de messages pour les rubriques FIFO.