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éveloppement de producteurs à l'aide de la bibliothèque producteur Amazon Kinesis (KPL)
Un producteur Amazon Kinesis Data Streams est une application qui place des enregistrements de données utilisateur dans un flux de données Kinesis (également appelé ingestion de données). La bibliothèque producteur Kinesis (KPL) simplifie le développement des applications producteur, permettant ainsi aux développeurs d'atteindre un haut débit d'écriture dans un flux de données Kinesis.
Vous pouvez surveiller le KPL avec Amazon CloudWatch. Pour de plus amples informations, veuillez consulter Surveillance de la bibliothèque Kinesis Producer avec Amazon CloudWatch.
Table des matières
- Rôle de la KPL
- Avantages liés à l'utilisation de la KPL
- Quand ne pas utiliser la bibliothèque KPL
- Installation de la KPL
- Transition vers les certificats Amazon Trust Services (ATS) pour la bibliothèque Kinesis Producer Library
- Plateformes prises en charge par la KPL
- Concepts clés de la KPL
- Intégration de la bibliothèque KPL avec le code producteur
- Écrire dans votre Kinesis Data Streams à l'aide de la KPL
- Configuration de la bibliothèque producteur Kinesis
- Dégroupement côté consommateur
- Utilisation du KPL avec Firehose
- Utilisation du KPL avec le AWS Glue Schema Registry
- Configuration de proxy KPL
Note
Il est recommandé de passer à la dernière version de KPL. La KPL est régulièrement mise à jour avec de nouvelles versions qui incluent les derniers correctifs de dépendance et de sécurité, des corrections de bogues et de nouvelles fonctionnalités rétrocompatibles. Pour plus d'informations, consultez https://github.com/awslabs/ amazon-kinesis-producer /releases/
Rôle de la KPL
Le KPL est une easy-to-use bibliothèque hautement configurable qui vous permet d'écrire dans un flux de données Kinesis. Elle sert d'intermédiaire entre le code de votre application producteur et les actions d'API Kinesis Data Streams. La KPL effectue les tâches principales suivantes :
-
Ecrit dans un ou plusieurs flux de données Kinesis avec un mécanisme de nouvelle tentative configurable
-
Collecte les enregistrements et utilise
PutRecords
pour écrire plusieurs enregistrements dans plusieurs partitions par demande -
Regroupe les enregistrements d'utilisateur pour accroître la taille de la charge utile et améliorer le débit
-
S'intègre de façon transparente avec la bibliothèque client Kinesis (KCL) pour dégrouper les enregistrements en lot sur l'application producteur
-
Soumet CloudWatch les statistiques Amazon en votre nom afin de fournir une visibilité sur les performances des producteurs
Notez que la KPL est différente de l'API Kinesis Data Streams disponible dans les SDKAWS
Avantages liés à l'utilisation de la KPL
La liste suivante présente certains des principaux avantages liés à l'utilisation de la KPL pour le développement des applications producteur Kinesis Data Streams.
La KPL peut servir aussi bien dans les deux cas d'utilisation synchrones qu'asynchrones. Nous recommandons d'utiliser les meilleures performances de l'interface asynchrone, à moins d'avoir une raison précise d'utiliser le comportement synchrone. Pour plus d'informations sur ces deux cas d'utilisation et l'exemple de code, consultez la page Écrire dans votre Kinesis Data Streams à l'aide de la KPL.
- Avantages en termes de performances
-
La KPL peut aider à créer des applications producteur hautes performances. Imaginez une situation où vos instances Amazon EC2 servent de proxy pour la collecte des événements de 100 octets sur des centaines ou milliers d'appareils de faible puissance et pour l'écriture des enregistrements dans un flux de données Kinesis. Ces instances EC2 doivent écrire chacune des milliers d'événements par seconde dans votre flux de données. Pour atteindre le débit nécessaire, les applications producteur doivent mettre en œuvre une logique complexe, telle que le traitement par lots ou multithreading, en plus d'une logique de nouvelle tentative et du dégroupement des enregistrements du côté consommateur. La KPL effectue toutes ces tâches à votre place.
- Facilité d'utilisation côté consommateur
-
Pour les développeurs côté consommateur qui utilisent la KCL en Java, la KPL s'intègre sans effort supplémentaire. Lorsque la KCL extrait un enregistrement Kinesis Data Streams groupé, composé de plusieurs enregistrements d'utilisateur KPL, elle appelle automatiquement la KPL pour extraire les différents enregistrements d'utilisateur avant de les renvoyer à l'utilisateur.
Pour les développeurs côté consommateur qui n'utilisent pas la KCL, mais directement l'opération d'API
GetRecords
, une bibliothèque KPL Java est disponible pour extraire les différents enregistrements d'utilisateur avant de les renvoyer à l'utilisateur. - Surveillance d'une application producteur
-
Vous pouvez collecter, surveiller et analyser vos producteurs de Kinesis Data Streams à l'aide d' CloudWatch Amazon et du KPL. Le KPL émet des indicateurs de débit, d'erreur et d'autres indicateurs en votre CloudWatch nom, et est configurable pour être surveillé au niveau du flux, de la partition ou du producteur.
- Architecture asynchrone
-
Étant donné que la KPL peut mettre en tampon des enregistrements avant de les envoyer à Kinesis Data Streams, elle ne force pas l'application de l'appelant à se bloquer et à attendre la confirmation que l'enregistrement est arrivé au niveau du serveur avant de poursuivre son exécution. Un appel pour placer un enregistrement dans la KPL renvoie toujours immédiatement une réponse et n'attend pas l'envoi de l'enregistrement ou une réponse reçue du serveur. En revanche, un objet
Future
est créé, qui reçoit le résultat de l'envoi ultérieur de l'enregistrement à Kinesis Data Streams. Ce comportement est identique à celui des clients asynchrones dans le AWS SDK.
Quand ne pas utiliser la bibliothèque KPL
La KPL peut subir un délai de traitement supplémentaire allant jusqu'à RecordMaxBufferedTime
dans la bibliothèque (configurable par l'utilisateur). Les valeurs élevées de RecordMaxBufferedTime
se traduisent par une efficacité de compression supérieure et de meilleures performances. Les applications qui ne peuvent pas tolérer ce délai supplémentaire doivent peut-être utiliser le kit SDK AWS
directement. Pour plus d'informations sur l'utilisation du AWS SDK avec Kinesis Data Streams, consultez. Développement de producteurs utilisant l'API Amazon Kinesis Data Streams avec AWS SDK for Java Pour plus d'informations sur RecordMaxBufferedTime
et les autres propriétés configurables par l'utilisateur de la KPL, consultez Configuration de la bibliothèque producteur Kinesis.