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.
Traitement à faible latence pour les sources d’événements Kafka
AWS Lambda prend en charge de manière native le traitement des événements à faible latence pour les applications nécessitant des latences de bout en bout cohérentes de moins de 100 millisecondes. Cette page fournit des informations de configuration et des recommandations pour permettre des flux de travail à faible latence.
Activer le traitement à faible latence
Pour activer le traitement à faible latence sur un mappage des sources d’événements Kafka, la configuration de base suivante est requise :
-
Activez le mode provisionné. Pour de plus amples informations, veuillez consulter Mode alloué.
-
Définissez le paramètre du mappage des sources d’événements
MaximumBatchingWindowInSecondssur 0. Pour de plus amples informations, veuillez consulter Comportement de traitement par lots.
Fine-tuning votre Kafka ESM à faible latence
Tenez compte des recommandations suivantes pour optimiser votre mappage des sources d’événements Kafka pour une faible latence :
Configuration du mode provisionné
En mode provisionné pour le mappage des sources d'événements Kafka, vous pouvez affiner le débit de votre mappage des sources d'événements en configurant un nombre minimum et maximum de ressources appelées sondeurs d'événements. Un sondeur d'événements (ou un sondeur) représente une ressource de calcul qui sous-tend un mappage de sources d'événements en mode provisionné et alloue jusqu'à 5 débits. MB/s Chaque sondeur d’événements prend en charge jusqu’à 5 invocations Lambda simultanées.
Pour déterminer la configuration optimale de sondeurs pour votre application, tenez compte de votre taux d’ingestion maximal et de vos exigences de traitement. Étudions un exemple simplifié :
Avec une taille de lot de 20 enregistrements et une durée de fonction cible moyenne de 50 ms, chaque sondeur peut gérer 2 000 enregistrements par seconde, sous réserve d'une limite de 5 MB/s . Ceci est calculé comme suit : (20 enregistrements × 1000ms/50ms) × 5 appels Lambda simultanés. Par conséquent, si le taux d’ingestion maximal souhaité est de 20 000 enregistrements par seconde, vous aurez besoin d’au moins 10 sondeurs d’événements.
Note
Nous vous recommandons de prévoir des sondeurs d’événements supplémentaires en tant que tampon de sûreté afin d’éviter de fonctionner constamment à pleine capacité.
Le mode provisionné met à l’échelle vos sondeurs d’événements automatiquement en fonction des modèles de trafic dans les limites minimales et maximales de sondeurs d’événements configurées, ce qui peut déclencher un rééquilibrage, et par conséquent introduire une latence supplémentaire. Vous pouvez désactiver l’autoscaling en configurant la même valeur pour le nombre minimal et maximal de sondeurs d’événements.
Considérations supplémentaires
Voici quelques considérations supplémentaires :
Les démarrages à froid à partir de l’invocation de votre fonction cible Lambda peuvent augmenter la latence de bout en bout. Pour réduire ce risque, envisagez d'activer la simultanéité provisionnée ou de modifier la SnapStart fonction cible de votre mappage des sources d'événements. En outre, optimisez l’allocation de mémoire de votre fonction pour garantir des exécutions cohérentes et optimales.
-
Lorsqu'il
MaximumBatchingWindowInSecondsest défini sur 0, Lambda traite immédiatement tous les enregistrements disponibles sans attendre de remplir la taille complète du lot. Par exemple, si la taille de votre lot est définie sur 1 000 enregistrements mais que seuls 100 enregistrements sont disponibles, Lambda traite ces 100 enregistrements immédiatement au lieu d'attendre que les 1 000 enregistrements complets soient accumulés.
Important
La configuration optimale pour un traitement à faible latence varie considérablement selon votre charge de travail spécifique. Nous vous recommandons vivement de tester différentes configurations avec votre charge de travail réelle afin de déterminer les meilleurs paramètres pour votre cas d’utilisation.