Entwickeln von Produzenten mit der Amazon Kinesis Producer Library - Amazon-Kinesis-Data-Streams

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Entwickeln von Produzenten mit der Amazon Kinesis Producer Library

Ein Produzent von Amazon Kinesis Data Streams ist eine Anwendung, die Datensätze an einen Kinesis-Datenstrom übergibt (dies wird auch als Datenerfassung bezeichnet). Die Kinesis Producer Library (KPL) vereinfacht die Entwicklung von Produzentenanwendungen und ermöglicht Entwicklern einen hohen Schreibdurchsatz für einen Kinesis-Datenstrom.

Sie können die KPL mit Amazon überwachen CloudWatch. Weitere Informationen finden Sie unter Überwachung der Kinesis Producer Library mit Amazon CloudWatch.

Anmerkung

Es wird empfohlen, ein Upgrade auf die neueste KPL-Version durchzuführen. KPL wird regelmäßig mit neueren Versionen aktualisiert, die die neuesten Abhängigkeits- und Sicherheitspatches, Bugfixes und abwärtskompatible neue Features enthalten. Weitere Informationen finden Sie unter https://github.com/awslabs/amazon-kinesis-producer/releases/.

Die Rolle der KPL

Die KPL ist eine hoch konfigurierbare -Bibliothek easy-to-use, mit der Sie in einen Kinesis-Datenstrom schreiben können. Sie dient als Vermittler zwischen dem Code Ihrer Produzentenanwendung und den API-Aktionen von Kinesis Data Streams. Die KPL führt die folgenden primären Aufgaben durch:

  • Schreiben in einen oder mehrere Kinesis-Datenströme mit einem automatischen und konfigurierbaren Wiederholungsmechanismus

  • Sammeln von Datensätzen und Verwenden von PutRecords, um pro Anforderung mehrere Datensätze für mehrere Shards zu schreiben

  • Aggregieren von Benutzerdatensätzen zur Erhöhung der Nutzlast und Verbesserung des Durchsatzes

  • Nahtlose Integration in die Kinesis Client Library (KCL), für eine Disaggregation gestapelter Datensätze auf Konsumentenseite

  • Sendet Amazon- CloudWatch Metriken in Ihrem Namen, um Einblick in die Leistung des Produzenten zu gewähren

Beachten Sie, dass sich die KPL von der API für Kinesis Data Streams unterscheidet, die in den AWS SDKs enthalten ist. Die API für Kinesis Data Streams unterstützt Sie bei der Verwaltung vieler Aspekte von Kinesis Data Streams (einschließlich Stream-Erstellung, Resharding sowie Hinzufügen und Abrufen von Datensätzen), während die KPL eine Abstraktionsebene speziell für die Datenübernahme bereitstellt. Informationen zur Kinesis-Data-Streams-API finden Sie in der Amazon-Kinesis-API-Referenz.

Vorteile der Verwendung der KPL

In der folgenden Liste sind einige der größten Vorteile der Verwendung der KPL für die Entwicklung von Produzenten von Kinesis Data Streams aufgeführt.

Die KPL kann für synchrone oder asynchrone Anwendungsfälle eingesetzt werden. Wir empfehlen, die höhere Leistung der asynchronen Schnittstelle zu verwenden, sofern keine besonderen Gründe für die Nutzung des synchronen Verhaltens vorliegen. Weitere Informationen zu diesen beiden Anwendungsfällen sowie einen Beispiel-Code finden Sie unter Schreiben in den Kinesis Data Streams mit der KPL.

Leistungsvorteile

Mit der KPL können Sie leistungsstarke Produzenten erstellen. Angenommen, Ihre Amazon-EC2-Instances dienen als Proxy zum Erfassen von 100-Byte-Ereignissen von mehreren Hundert oder Tausend energiesparenden Geräten und zum Schreiben von Datensätzen in einen Kinesis-Datenstrom. Diese EC2 Instances müssen jeweils Tausende von Ereignissen pro Sekunde in Ihren Datenstream schreiben. Um den nötigen Durchsatz zu erreichen, müssen Produzenten eine komplexe Logik, beispielsweise Stapelverarbeitung oder Multithreading, implementieren und auf Konsumentenseite eine Wiederholung der Logik sowie die Disaggregation der Datensätze sicherstellen. Die KPL führt all diese Aufgaben für Sie durch.

Anwenderfreundlichkeit auf Konsumentenseite

Entwickler auf Konsumentenseite, die die KCL in Java nutzen, können die KPL ohne zusätzlichen Aufwand integrieren. Wenn die KCL einen aggregierten Datensatz von Kinesis Data Streams abruft, der aus mehreren KPL-Benutzerdatensätzen besteht, ruft sie automatisch die KPL auf, um die einzelnen Benutzerdatensätze vor der Rückgabe an den Benutzer zu extrahieren.

Für Entwickler auf Verbraucherseite, die anstelle der KCL direkt die API-Operation GetRecords nutzen, steht eine KPL-Java-Bibliothek zum Extrahieren der einzelnen Benutzerdatensätze vor der Rückgabe an den Benutzer zur Verfügung.

Überwachen von Produzenten

Sie können Ihre Produzenten von Kinesis Data Streams mit Amazon und der KPL erfassen, überwachen CloudWatch und analysieren. Die KPL gibt in CloudWatch Ihrem Namen Durchsatz, Fehler und andere Metriken an aus und kann für die Überwachung auf Stream-, Shard- oder Produzentenebene konfiguriert werden.

Asynchrone Architektur

Da die KPL Datensätze möglicherweise vor dem Senden an Kinesis Data Streams puffert, wird die Anwendung des Aufrufers nicht zum Blockieren und Warten auf die Bestätigung, dass der Datensatz beim Server angekommen ist, gezwungen, ehe die Ausführung fortgesetzt werden kann. Der Aufruf, einen Datensatz an die KPL zu übergeben, wird stets sofort zurückgegeben. Es wird nicht darauf gewartet, dass der Datensatz gesendet bzw. eine Antwort vom Server empfangen wird. Stattdessen wird ein Future-Objekt erstellt, das zu einem späteren Zeitpunkt das Ergebnis der Sendung des Datensatzes an Kinesis Data Streams empfängt. Dies ist dasselbe Verhalten wie asynchrone Clients im AWS SDK.

Wann die KPL nicht verwendet werden sollte

Die KPL kann eine weitere Verarbeitungsverzögerung von RecordMaxBufferedTime innerhalb der Bibliothek verursachen (vom Benutzer konfigurierbar). Größere Werte von RecordMaxBufferedTime führen zu einer schnelleren Verpackung und einer besseren Leistung. Anwendungen, die diese zusätzliche Verzögerung nicht tolerieren können, müssen möglicherweise das AWS -SDK direkt verwenden. Weitere Informationen zur Verwendung des AWS SDK mit Kinesis Data Streams finden Sie unter Entwicklung von Produzenten mithilfe der API für Amazon Kinesis Data Streams mit der AWS SDK for Java. Weitere Informationen zu RecordMaxBufferedTime und anderen vom Benutzer konfigurierbaren Eigenschaften der KPL finden Sie unter Konfiguration der Kinesis Producer Library.