View a markdown version of this page

Types de files d'attente Amazon SQS - Amazon Simple Queue 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.

Types de files d'attente Amazon SQS

Amazon SQS prend en charge deux types de files d'attente : les files d'attente standard et les files FIFO. Utilisez le tableau suivant pour déterminer la file d'attente qui correspond le mieux à vos besoins.

Files d'attente standard Files d'attente FIFO

Débit illimité — Les files d'attente standard prennent en charge un nombre très élevé, presque illimité, d'appels d'API par seconde SendMessage, par action (ReceiveMessage, ou DeleteMessage). Ce haut débit les rend idéales pour les cas d'utilisation nécessitant le traitement rapide de grands volumes de messages, tels que le streaming de données en temps réel ou les applications à grande échelle. Alors que les files d'attente standard évoluent automatiquement en fonction de la demande, il est essentiel de surveiller les modèles d'utilisation pour garantir des performances optimales, en particulier dans les régions où les charges de travail sont plus élevées.

At-least-once livraison — Livraison garantie au moins une fois, ce qui signifie que chaque message est délivré au moins une fois, mais dans certains cas, un message peut être délivré plusieurs fois en raison de nouvelles tentatives ou de retards du réseau. Vous devez concevoir votre application de manière à gérer les éventuels messages dupliqués en utilisant des opérations idempotentes, qui garantissent que le traitement répété du même message n'affectera pas l'état du système.

Best-effort commande  : permet de commander au mieux, ce qui signifie qu'Amazon SQS essaie de transmettre les messages dans l'ordre dans lequel ils ont été envoyés, mais ne le garantit pas. Dans certains cas, les messages peuvent arriver dans le désordre, notamment en cas de débit élevé ou de reprise après panne. Pour les applications où l'ordre de traitement des messages est crucial, vous devez gérer la logique de réorganisation au sein de l'application ou utiliser des files d'attente FIFO pour des garanties de classement strictes.

Durabilité et redondance  : les files d'attente standard garantissent une durabilité élevée en stockant plusieurs copies de chaque message dans plusieurs zones de AWS disponibilité. Cela garantit que les messages ne sont pas perdus, même en cas de défaillance de l'infrastructure.

Délai de visibilité  : Amazon SQS vous permet de configurer un délai d'expiration de visibilité pour contrôler la durée pendant laquelle un message reste masqué après sa réception, en veillant à ce que les autres consommateurs ne traitent pas le message tant qu'il n'a pas été entièrement traité ou que le délai d'attente n'a pas expiré.

Haut débit  : lorsque vous utilisez le traitement par lots, les files d'attente FIFO traitent jusqu'à 3 000 messages par seconde par méthode d'API (SendMessageBatchReceiveMessage, ou DeleteMessageBatch). Ce débit repose sur 300 appels d'API par seconde, chaque appel d'API gérant un lot de 10 messages. En activant le mode haut débit, vous pouvez augmenter jusqu'à 30 000 transactions par seconde (TPS) avec un ordre simplifié au sein des groupes de messages. Sans traitement par lots, les files d'attente FIFO prennent en charge jusqu'à 300 appels d'API par seconde et par méthode d'API (SendMessageReceiveMessage, ouDeleteMessage). Si vous avez besoin de plus de débit, vous pouvez demander une augmentation de quota via le Centre de AWS support. Pour activer le mode haut débit, consultezActivation d'un débit élevé pour les files d'attente FIFO dans Amazon SQS.

Exactly-once traitement  : les files d'attente FIFO transmettent chaque message une seule fois et le gardent disponible jusqu'à ce que vous le traitiez et le supprimiez. En utilisant des fonctionnalités telles que la déduplication basée sur le contenu, vous évitez les messages dupliqués, même en cas de nouvelle tentative en raison de problèmes réseau MessageDeduplicationId ou de délais d'attente.

First-in-first-out livraison  : les files d'attente FIFO garantissent que vous recevez les messages dans l'ordre dans lequel ils ont été envoyés dans chaque groupe de messages. En distribuant les messages entre plusieurs groupes, vous pouvez les traiter en parallèle tout en maintenant l'ordre au sein de chaque groupe.

Livraison de messages en file d'attente standard.
Livraison des messages de la file d'attente FIFO.
Utilisez des files d'attente standard pour envoyer des données entre les applications lorsque le débit est crucial, par exemple :
  • Dissociez les demandes en direct des utilisateurs du travail de fond intensif. Permettez aux utilisateurs de télécharger rapidement du contenu multimédia pendant que vous effectuez des tâches telles que le redimensionnement ou l'encodage en arrière-plan, garantissant ainsi des temps de réponse rapides sans surcharger le système.

  • Allouez des tâches à plusieurs nœuds de travail. Distribuez un grand nombre de demandes de validation de cartes de crédit sur plusieurs nœuds de travail et gérez les messages dupliqués avec des opérations idempotentes pour éviter les erreurs de traitement.

  • Messages groupés pour un traitement futur. Mettez plusieurs entrées en file d'attente pour les ajouts par lots à une base de données. L'ordre des messages n'étant pas garanti, concevez votre système de manière à gérer le traitement des commandes hors commande si nécessaire.

Utilisez les files d'attente FIFO pour envoyer des données entre les applications lorsque l'ordre des événements est important, par exemple :

  • Assurez-vous que les commandes saisies par l'utilisateur sont exécutées dans le bon ordre. Il s'agit d'un cas d'utilisation clé pour les files d'attente FIFO, où l'ordre des commandes est crucial. Par exemple, si un utilisateur effectue une séquence d'actions dans une application, les files d'attente FIFO garantissent que les actions sont traitées dans le même ordre que celui dans lequel elles ont été saisies.

  • Affichez le prix correct du produit en envoyant les modifications de prix dans le bon ordre. Les files d'attente FIFO garantissent que les multiples mises à jour du prix d'un produit arrivent et sont traitées de manière séquentielle. Sans FIFO, une réduction de prix peut être traitée après une augmentation de prix, ce qui entraîne l'affichage de données incorrectes.

  • Empêchez un étudiant de s'inscrire à un cours avant de créer un compte. En utilisant les files d'attente FIFO, vous vous assurez que le processus d'enregistrement se déroule dans le bon ordre. Le système traite d'abord l'enregistrement du compte, puis l'inscription au cours, empêchant ainsi l'exécution prématurée de la demande d'inscription.