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 qui nécessitent des end-to-end latences constantes inférieures à 100 millisecondes. Cette page fournit des informations de configuration et des recommandations pour activer les flux de travail à faible latence.
Activez le traitement à faible latence
Pour activer le traitement à faible latence sur un mappage de source d'événement Kafka, la configuration de base suivante est requise :
-
Activez le mode provisionné. Pour de plus amples informations, veuillez consulter Configuration du mode alloué.
-
Définissez le
MaximumBatchingWindowInSeconds
paramètre du mappage de la source d'événements sur 0. Pour de plus amples informations, veuillez consulter Comportement de traitement par lots.
Réglage précis de votre Kafka ESM à faible latence
Tenez compte des recommandations suivantes pour optimiser le mappage de votre source d'événements Kafka en vue d'une faible latence :
Configuration du mode provisionné
En mode provisionné pour le mappage des sources d'événements Kafka, Lambda vous permet d'ajuster le débit de votre mappage des sources d'événements en configurant un nombre minimum et maximum de ressources appelées sondages d'événements. Un sondeur d'événements (ou un interrogateur) représente une ressource de calcul qui sous-tend le mappage d'une source d'événements en mode provisionné et alloue jusqu'à 5 % de débit. MB/s Chaque sondeur d'événements prend en charge jusqu'à 5 appels Lambda simultanés.
Pour déterminer la configuration optimale du sondeur pour votre application, tenez compte de votre taux d'ingestion maximal et de vos exigences de traitement. Regardons 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 traiter 2 000 enregistrements par seconde, dans la limite de 5 MB/s . Ceci est calculé comme suit : (20 enregistrements × 1 000 ms/50 ms) × 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 recommandons de prévoir des sondeurs d'événements supplémentaires en tant que mémoire tampon afin d'éviter de fonctionner constamment à pleine capacité.
Le mode provisionné adapte automatiquement vos sondeurs d'événements en fonction des modèles de trafic au sein des sondeurs d'événements minimum et maximum configurés, ce qui peut déclencher un rééquilibrage et, par conséquent, introduire une latence supplémentaire. Vous pouvez désactiver l'auto-scaling en configurant la même valeur pour le sondeur d'événements minimum et maximum.
Considérations supplémentaires
Parmi les autres considérations, mentionnons les suivantes :
Les démarrages à froid provoqués par l'invocation de votre fonction cible Lambda peuvent potentiellement end-to-end augmenter le temps de latence. Pour réduire ce risque, pensez à activer la simultanéité provisionnée ou à activer SnapStartla fonction cible du 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
MaximumBatchingWindowInSeconds
est 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 traitera ces 100 enregistrements immédiatement plutôt que d'attendre que les 1 000 enregistrements complets soient accumulés.
Important
La configuration optimale pour un traitement à faible latence varie considérablement en fonction de 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.