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.
Les concepts suivants clarifient la manière dont les SQS FIFO files d'attente Amazon gèrent l'envoi et la réception de messages, en particulier lorsqu'il s'agit de l'ordre des messages et des groupes IDs de messages.
Envoi de messages
Les SQS FIFO files d'attente Amazon préservent l'ordre des messages grâce à une déduplication IDs et à un groupe de messages uniques. IDs Cette rubrique met en lumière l'importance du groupe de messages IDs pour maintenir un ordre strict au sein des groupes et met en évidence les meilleures pratiques pour garantir une diffusion fiable et ordonnée des messages entre plusieurs producteurs.
-
Conservation des commandes
-
Lorsque plusieurs messages sont envoyés successivement à une FIFO file d'attente avec déduplication unique des messagesIDs, Amazon les SQS stocke et accuse réception de leur transmission. Ces messages sont ensuite reçus et traités dans l'ordre exact dans lequel ils ont été transmis.
-
-
ID de groupe de messages
-
Dans les FIFO files d'attente, les messages sont classés en fonction de leur ID de groupe de messages. Si plusieurs producteurs ou fils de discussion envoient des messages avec le même identifiant de groupe de messages, Amazon SQS s'assure qu'ils sont stockés et traités dans l'ordre dans lequel ils arrivent.
-
Bonne pratique : pour garantir un ordre strict des messages entre plusieurs producteurs, attribuez un identifiant de groupe de messages unique à tous les messages de chaque producteur.
-
-
Commande par groupe
-
FIFOla logique de file d'attente s'applique sur la base de l'ID de groupe de messages par message :
-
Chaque ID de groupe de messages représente un groupe de messages distinct et ordonné.
-
Au sein d'un ID de groupe de messages, tous les messages sont envoyés et reçus dans un ordre strict.
-
Les messages appartenant à des groupes de messages différents IDs peuvent arriver ou être traités dans un ordre désordonné les uns par rapport aux autres.
-
-
Exigence - Vous devez associer un ID de groupe de messages à chaque message. Si un message est envoyé sans identifiant de groupe, l'action échoue.
-
Scénario de groupe unique : si vous souhaitez que tous les messages soient traités dans un ordre strict, utilisez le même identifiant de groupe de messages pour chaque message.
-
Réception de messages
Les SQS FIFO files d'attente Amazon gèrent la récupération des messages, y compris le traitement par lots, les garanties de FIFO commande et les limites relatives aux demandes de groupes de messages spécifiques. IDs Cette rubrique explique comment Amazon SQS récupère les messages au sein des groupes de messages et entre eux IDs tout en respectant des règles de commande et de visibilité strictes.
-
Récupération par lots
-
Lors de la réception de messages provenant FIFO d'une file d'attente comportant plusieurs groupes de messagesIDs, Amazon SQS :
-
Tente de renvoyer autant de messages que possible avec le même ID de groupe de messages au cours d'un seul appel.
-
Permet aux autres consommateurs de traiter IDs simultanément les messages provenant de différents groupes de messages.
-
-
Clarification importante
-
Vous pouvez recevoir plusieurs messages du même identifiant de groupe de messages en un seul lot (jusqu'à 10 messages par appel en utilisant le
MaxNumberOfMessages
paramètre). -
Cependant, vous ne pouvez pas recevoir de messages supplémentaires provenant du même identifiant de groupe de messages dans les demandes suivantes tant que :
-
Les messages actuellement reçus sont supprimés, ou
-
Ils redeviennent visibles (par exemple, une fois le délai de visibilité expiré).
-
-
-
-
FIFOgarantie de commande
-
Les messages extraits par lots conservent leur FIFO ordre au sein du groupe.
-
Si moins de 10 messages sont disponibles pour le même identifiant de groupe de messages, Amazon SQS peut inclure des messages provenant d'autres groupes de messages IDs dans le même lot, mais chaque groupe reste dans l'FIFOordre.
-
-
Limites applicables aux consommateurs
-
Vous ne pouvez pas demander explicitement à recevoir des messages provenant d'un identifiant de groupe de messages spécifique.
-
Multiples nouvelles tentatives
Les producteurs et les consommateurs peuvent réessayer en toute sécurité les actions qui ont échoué dans les SQS FIFO files d'attente Amazon sans perturber l'ordre des messages ni introduire de doublons. Cette rubrique explique comment les délais de déduplication IDs et de visibilité garantissent l'intégrité des messages lors des nouvelles tentatives.
-
Réessaie le producteur
-
Si une
SendMessage
action échoue, le producteur peut réessayer d'envoyer le message plusieurs fois avec le même identifiant de déduplication. -
Tant que le producteur reçoit au moins un accusé de réception avant l'expiration de l'intervalle de déduplication, il réessaie :
-
N'introduisez pas de messages dupliqués.
-
Ne perturbez pas l'ordre des messages.
-
-
-
Réessaie par le consommateur
-
Si une
ReceiveMessage
action échoue, le consommateur peut réessayer autant de fois que nécessaire en utilisant le même identifiant de tentative de demande de réception. -
Tant que le consommateur reçoit au moins un accusé de réception avant l'expiration du délai de visibilité, il réessaie :
-
Ne perturbez pas l'ordre des messages.
-
-
Remarques supplémentaires sur le FIFO comportement
Découvrez comment gérer les délais de visibilité, activer le traitement parallèle avec plusieurs groupes de messages et garantir un traitement séquentiel strict dans les scénarios à groupe IDs unique.
-
Gestion du délai de visibilité
-
Lorsqu'un message est récupéré mais non supprimé, il reste invisible jusqu'à l'expiration du délai de visibilité.
-
Aucun message supplémentaire provenant du même identifiant de groupe de messages n'est renvoyé tant que le premier message n'est pas supprimé ou ne redevient visible.
-
-
Traitement simultané et parallélisme
-
FIFOles files d'attente permettent le traitement parallèle des messages entre différents groupes IDs de messages.
-
Pour optimiser la simultanéité, concevez votre système avec plusieurs groupes de messages IDs pour des flux de travail indépendants.
-
-
Scénarios de groupe unique
-
Pour un traitement séquentiel strict de tous les messages FIFO d'une file d'attente, utilisez un identifiant de groupe de messages unique pour tous les messages de la file d'attente.
-
Exemples pour mieux comprendre
Les scénarios pratiques suivants illustrent le comportement des FIFO files d'attente sur AmazonSQS.
-
Scénario 1 : ID de groupe unique
-
Un producteur envoie cinq messages avec le même identifiant de groupe de messages (groupe A).
-
Le consommateur reçoit ces messages dans l'FIFOordre. Jusqu'à ce que le consommateur supprime ces messages ou que le délai de visibilité expire, aucun message supplémentaire du groupe A n'est reçu.
-
-
Scénario 2 : groupe multiple IDs
-
Un producteur envoie cinq messages au groupe A et 5 au groupe B.
-
Le consommateur 1 traite les messages du groupe A, tandis que le consommateur 2 traite les messages du groupe B. Cela permet un traitement parallèle avec un ordre strict maintenu au sein de chaque groupe.
-
-
Scénario 3 : extraction par lots
-
Un producteur envoie sept messages au groupe A et trois au groupe B.
-
Un seul client peut récupérer jusqu'à 10 messages. Si la file d'attente le permet, elle peut renvoyer :
-
Sept messages du groupe A et trois du groupe B (ou moins si moins de messages sont disponibles dans un seul groupe).
-
-