Entwickeln Sie Produzenten mithilfe der Amazon Kinesis Producer Library () KPL - 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 Sie Produzenten mithilfe der Amazon Kinesis Producer Library () KPL

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 Producer-Anwendungen und ermöglicht es Entwicklern, einen hohen Schreibdurchsatz in einen Kinesis-Datenstream zu erreichen.

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

Anmerkung

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

Informieren Sie sich über die Rolle des KPL

Die KPL ist eine easy-to-use hochgradig konfigurierbare Bibliothek, mit der Sie in einen Kinesis-Datenstrom schreiben können. Es fungiert als Vermittler zwischen Ihrem Producer-Anwendungscode und den Kinesis Data Streams API Streams-Aktionen. Der KPL führt die folgenden Hauptaufgaben aus:

  • 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

  • Lässt sich nahtlos in die Kinesis Client Library (KCL) integrieren, um gebündelte Datensätze auf dem Endverbraucher zu deaggregieren

  • Übermittelt in Ihrem Namen CloudWatch Amazon-Metriken, um Einblick in die Leistung der Produzenten zu erhalten

Beachten Sie, dass KPL sich der von den Kinesis Data Streams unterscheidetAPI, die in der AWS SDKsverfügbar sind. Kinesis Data Streams API unterstützt Sie bei der Verwaltung vieler Aspekte von Kinesis Data Streams (einschließlich der Erstellung von Streams, Resharding sowie dem Einfügen und Abrufen von Datensätzen) und KPL bietet gleichzeitig eine Abstraktionsebene speziell für die Datenaufnahme. Informationen zu den Kinesis Data Streams API finden Sie in der Amazon Kinesis Kinesis-Referenz API.

Erkennen Sie die Vorteile der Verwendung von KPL

In der folgenden Liste sind einige der wichtigsten Vorteile aufgeführt, die sich aus der Verwendung von Kinesis Data Streams Streams-Produzenten KPL für die Entwicklung ergeben.

Der KPL kann entweder in synchronen oder asynchronen Anwendungsfällen verwendet 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 Sie in Ihren Kinesis-Datenstream mit dem KPL.

Leistungsvorteile

KPLSie können beim Aufbau von Hochleistungsproduzenten helfen. Stellen Sie sich eine Situation vor, in der Ihre EC2 Amazon-Instances als Proxy für die Erfassung von 100-Byte-Ereignissen von Hunderten oder Tausenden von Geräten mit geringem Stromverbrauch und das Schreiben von Datensätzen in einen Kinesis-Datenstrom dienen. Diese EC2 Instances müssen jeweils Tausende von Ereignissen pro Sekunde in Ihren Datenstrom 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. Der KPL führt all diese Aufgaben für Sie aus.

Anwenderfreundlichkeit auf Konsumentenseite

Für Entwickler auf Kundenseite, die KCL in Java verwenden, KPL lässt sich der ohne zusätzlichen Aufwand integrieren. Wenn der einen aggregierten Kinesis Data Streams Streams-Datensatz KCL abruft, der aus mehreren KPL Benutzerdatensätzen besteht, ruft er automatisch den auf, KPL um die einzelnen Benutzerdatensätze zu extrahieren, bevor sie an den Benutzer zurückgegeben werden.

Für Entwickler auf Kundenseite, die den API Vorgang nicht, KCL sondern GetRecords direkt verwenden, steht eine KPL Java-Bibliothek zur Verfügung, mit der die einzelnen Benutzerdatensätze extrahiert werden können, bevor sie an den Benutzer zurückgegeben werden.

Überwachen von Produzenten

Sie können Ihre Kinesis Data Streams Streams-Produzenten mit Amazon und dem KPL sammeln, überwachen CloudWatch und analysieren. Der KPL sendet in Ihrem Namen Durchsatz, Fehler und andere Messwerte an und ist für die Überwachung CloudWatch auf Stream-, Shard- oder Producer-Ebene konfigurierbar.

Asynchrone Architektur

Da sie Datensätze puffern KPL können, bevor sie an Kinesis Data Streams gesendet werden, zwingt sie die aufrufende Anwendung nicht, zu blockieren und auf eine Bestätigung zu warten, dass der Datensatz auf dem Server angekommen ist, bevor die Ausführung fortgesetzt wird. Ein Aufruf zum Einfügen eines Datensatzes wird KPL immer sofort zurückgegeben und wartet nicht darauf, dass der Datensatz gesendet oder 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 bei asynchronen Clients in der AWS SDK.

Verstehen Sie, wann Sie das nicht verwenden sollten KPL

Dies KPL kann zu einer zusätzlichen Verarbeitungsverzögerung von bis zu RecordMaxBufferedTime innerhalb der Bibliothek führen (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 die AWS SDK möglicherweise direkt verwenden. Weitere Informationen zur Verwendung von AWS SDK mit Kinesis Data Streams finden Sie unterEntwickeln Sie Produzenten, die Amazon Kinesis Data Streams verwenden, API mit dem AWS SDK for Java. Weitere Informationen über RecordMaxBufferedTime und andere vom Benutzer konfigurierbare Eigenschaften von finden Sie KPL unter. Kinesis Producer Library konfigurieren