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, sodass Entwickler einen hohen Schreibdurchsatz in einen Kinesis-Datenstream erreichen können.

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. 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

  • 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.

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 Sie in Ihren Kinesis-Datenstream mit dem KPL.

Leistungsvorteile

Mit der KPL können Sie leistungsstarke Produzenten erstellen. 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. 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 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 Laufzeit fortgesetzt wird. 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 bei asynchronen Clients in der. AWS SDK

Verstehen Sie, wann Sie das nicht verwenden sollten KPL

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 die möglicherweise AWS SDK 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 zu RecordMaxBufferedTime und anderen vom Benutzer konfigurierbaren Eigenschaften der KPL finden Sie unter Kinesis Producer Library konfigurieren.