Développement des applications productrices à l'aide de la bibliothèque Amazon Kinesis Producer - Amazon Kinesis Data Streams

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 des applications productrices à l'aide de la bibliothèque Amazon Kinesis Producer

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 Kinesis Producer Library (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 la KPL avec AmazonCloudWatch. Pour de plus amples informations, veuillez consulter Surveillance de la bibliothèque Kinesis Producer avec Amazon CloudWatch.

Note

Il est recommandé de passer à la dernière version de KPL. KPL est régulièrement mis à jour avec des versions plus récentes qui incluent les derniers correctifs de dépendance et de sécurité, des corrections de bugs et de nouvelles fonctionnalités rétrocompatibles. Pour de plus amples informations, veuillez consulterhttps://github.com/awslabs/amazon-kinesis-producer/releases/.

Rôle de KPL

Le KPL est uneasy-to-use, bibliothèque hautement configurable qui vous aide à é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 à l'aide d'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 parfaitement avec leBibliothèque client Kinesis(KCL) pour dégrouper les enregistrements en lot sur le consommateur

  • Soumet AmazonCloudWatchdes métriques pour votre compte afin de fournir une meilleure visibilité sur les performances producteur

Notez que la KPL est différente de l'API Kinesis Data Streams disponible dans laAWSKits SDK. L'API Kinesis Data Streams vous permet de gérer de nombreux aspects de Kinesis Data Streams (notamment la création de flux, le repartitionnement, le placement et l'extraction des enregistrements), tandis que la KPL fournit une couche d'abstraction spécifiquement pour l'ingestion de données. Pour plus d'informations sur l'API Kinesis Data Streams, consultez leRéférence d'API Amazon Kinesis.

Avantages liés à l'utilisation de 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 flux de données Kinesis à l'aide de 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 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 qui utilisent plutôt l'opération d'APIGetRecordsdirectement, une bibliothèque Java KPL 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 applications producteur Kinesis Data Streams à l'aide d'Amazon.CloudWatchet KPL. La KPL émet le débit, les erreurs et d'autres mesures versCloudWatchEn votre nom, et peut être configurée pour effectuer une surveillance au niveau du flux, de la partition ou de l'application productrice.

Architecture asynchrone

Etant donné que la KPL peut mettre en tampon des enregistrements avant de les envoyer vers Kinesis Data Streams, elle ne force pas l'application appelant à se bloquer et à attendre la confirmation que l'enregistrement est arrivé sur le serveur avant de poursuivre l'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. Au lieu de cela, uneFutureest créé et reçoit le résultat de l'envoi ultérieur de l'enregistrement à Kinesis Data Streams. Ce comportement correspond à celui des clients asynchrones dans laAWSSDK.

Quand ne pas utiliser la KPL

La KPL peut subir un délai de traitement supplémentaire allant jusqu'àRecordMaxBufferedTimedans 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 laAWSKits de développement logiciel directement. Pour plus d'informations sur l'utilisation de la bibliothèqueAWSKinesis Data Streams, consultezDéveloppement d'applications producteur à l'aide de l'API Amazon Kinesis Data Streams avec leAWS SDK for Java. Pour plus d'informations surRecordMaxBufferedTimeainsi que les autres propriétés configurables par l'utilisateur de la KPL, consultezConfiguration de la bibliothèque Kinesis Producer.