Débit élevé pour les files d'attente FIFO dans 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.

Débit élevé pour les files d'attente FIFO dans Amazon SQS

Les files d'attente FIFO à haut débit d'Amazon SQS gèrent efficacement le débit élevé de messages tout en maintenant un ordre strict des messages, garantissant ainsi la fiabilité et l'évolutivité des applications traitant de nombreux messages. Cette solution est idéale pour les scénarios exigeant à la fois un débit élevé et une livraison ordonnée des messages.

Les files d'attente FIFO à haut débit Amazon SQS ne sont pas nécessaires dans les scénarios où un ordre strict des messages n'est pas crucial et où le volume de messages entrants est relativement faible ou sporadique. Par exemple, si vous avez une application à petite échelle qui traite des messages peu fréquents ou non séquentiels, la complexité et les coûts supplémentaires associés aux files d'attente FIFO à haut débit peuvent ne pas être justifiés. En outre, si votre application n'a pas besoin des capacités de débit améliorées fournies par les files d'attente FIFO à haut débit, opter pour une file d'attente Amazon SQS standard peut s'avérer plus rentable et plus simple à gérer.

Pour améliorer la capacité de demande dans les files d'attente FIFO à haut débit, il est recommandé d'augmenter le nombre de groupes de messages. Pour plus d'informations sur les quotas de messages à débit élevé, consultez Quotas du service Amazon SQS dans le Référence générale d'Amazon Web Services

Pour plus d'informations sur les quotas par file d'attente et les stratégies de distribution des données, reportez-vous aux sections Quotas de SQS messages Amazon etPartitions et distribution de données pour un débit élevé pour les files d'attente FIFO SQS.

Cas d'utilisation du débit élevé pour les files d'attente FIFO Amazon SQS

Les cas d'utilisation suivants mettent en évidence les diverses applications des files d'attente FIFO à haut débit, démontrant leur efficacité dans tous les secteurs et dans tous les scénarios :

  1. Traitement des données en temps réel : les applications traitant des flux de données en temps réel, tels que le traitement d'événements ou l'ingestion de données de télémétrie, peuvent bénéficier de files d'attente FIFO à haut débit pour gérer l'afflux continu de messages tout en préservant leur ordre pour une analyse précise.

  2. Traitement des commandes de commerce électronique : sur les plateformes de commerce électronique où le maintien de l'ordre des transactions des clients est essentiel, les files d'attente FIFO à haut débit garantissent que les commandes sont traitées de manière séquentielle et sans délai, même pendant les périodes de pointe des achats.

  3. Services financiers : les institutions financières traitant des transactions ou des transactions à haute fréquence s'appuient sur des files d'attente FIFO à haut débit pour traiter les données de marché et les transactions avec une latence minimale, tout en respectant des exigences réglementaires strictes en matière de commande des messages.

  4. Streaming multimédia : les plateformes de streaming et les services de distribution multimédia utilisent des files d'attente FIFO à haut débit pour gérer la diffusion des fichiers multimédia et du contenu en streaming, garantissant ainsi des expériences de lecture fluides aux utilisateurs tout en maintenant le bon ordre de diffusion du contenu.

Partitions et distribution de données pour un débit élevé pour les files d'attente FIFO SQS

Amazon SQS stocke les données des files d'attente FIFO dans des partitions. Une partition est une allocation de stockage pour une file d'attente qui est automatiquement répliquée sur plusieurs zones de disponibilité au sein d'une AWS région. Vous ne gérez pas les partitions. Amazon SQS gère la gestion des partitions.

Pour les files d'attente FIFO, Amazon SQS modifie le nombre de partitions dans une file d'attente dans les situations suivantes :

  • Si le taux de demandes actuel approche ou dépasse la limite de prise en charge des partitions existantes, des partitions supplémentaires sont allouées jusqu'à ce que la file d'attente atteigne le quota régional. Pour plus d'informations sur les quotas, consultez Quotas de SQS messages Amazon.

  • Si les partitions actuelles sont peu utilisées, le nombre de partitions peut être réduit.

La gestion de la partition s'effectue automatiquement à l'arrière-plan et est transparente pour vos applications. Votre file d'attente et vos messages sont disponibles à tout moment.

Distribution des données par ID de groupe de messages

Pour ajouter un message à une file d'attente FIFO, Amazon SQS utilise la valeur de l'ID de groupe de messages de chaque message comme entrée dans une fonction de hachage interne. La valeur de sortie de la fonction de hachage détermine la partition dans laquelle le message sera stocké.

Le diagramme suivant illustre une file d'attente qui s'étend sur plusieurs partitions. L'ID du groupe de messages de la file d'attente est basé sur le numéro d'élément. Amazon SQS utilise sa fonction de hachage pour déterminer où stocker un nouvel élément, en l'occurrence, en fonction de la valeur de hachage de la chaîne item0. Notez que les éléments sont stockés dans le même ordre dans lequel ils sont ajoutés à la file d'attente. L'emplacement de chaque élément est déterminé par la valeur de hachage de son ID de groupe de messages.

Une file d'attente couvre plusieurs partitions.
Note

Amazon SQS est optimisé pour une distribution uniforme des éléments entre les partitions d'une file d'attente FIFO, quel que soit le nombre de partitions. AWS recommande d'utiliser des identifiants de groupes de messages pouvant comporter un grand nombre de valeurs distinctes.

Optimisation de l'utilisation des partitions

Chaque partition peut prendre en charge jusqu'à 3 000 messages par seconde avec le traitement par lots, ou jusqu'à 300 messages par seconde pour les opérations d'envoi, de réception et de suppression dans les régions prises en charge. Pour plus d'informations sur les quotas de messages à débit élevé, consultez Quotas du service Amazon SQS dans le Référence générale d'Amazon Web Services

Lorsque vous utilisez des API par lots, chaque message est acheminé selon le processus décrit dans Distribution des données par ID de groupe de messages. Les messages acheminés vers la même partition sont regroupés et traités en une seule transaction.

Pour optimiser l'utilisation des partitions pour l'SendMessageBatchAPI, il est AWS recommandé de regrouper les messages avec les mêmes identifiants de groupe de messages lorsque cela est possible.

Pour optimiser l'utilisation des partitions pour les ChangeMessageVisibilityBatch API DeleteMessageBatch et, il est AWS recommandé d'utiliser des ReceiveMessage requêtes dont le MaxNumberOfMessages paramètre est défini sur 10 et de regrouper par lots les descripteurs de réception renvoyés par une seule demande. ReceiveMessage

Dans l'exemple suivant, un lot de messages avec différents identifiants de groupes de messages est envoyé. Le lot est divisé en trois groupes, chacun étant pris en compte dans le quota de la partition.

Un lot de messages avec différents identifiants de groupes de messages est stocké dans des partitions.
Note

Amazon SQS garantit uniquement que les messages dotés de la fonction de hachage interne du même ID de groupe de messages sont regroupés au sein d'une demande groupée. En fonction du résultat de la fonction de hachage interne et du nombre de partitions, les messages portant des ID de groupe de messages différents peuvent être regroupés. Comme la fonction de hachage ou le nombre de partitions peut changer à tout moment, les messages groupés à un moment donné ne le seront peut-être pas ultérieurement.