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.
Verwenden Sie die Kinesis Client Library (KCL), um Amazon Keyspaces-Streams zu verarbeiten
In diesem Thema wird beschrieben, wie Sie die Kinesis Client Library (KCL) verwenden, um Daten aus Amazon Keyspaces Change Data Capture (CDC) -Streams zu nutzen und zu verarbeiten.
Anstatt direkt mit der Amazon Keyspaces Streams API zu arbeiten, bietet die Arbeit mit der Kinesis Client Library (KCL) viele Vorteile, zum Beispiel:
-
Integriertes Shard-Lineage-Tracking und Iterator-Handling.
-
Automatischer Lastenausgleich zwischen Mitarbeitern.
-
Fehlertoleranz und Wiederherstellung nach Ausfällen von Mitarbeitern.
-
Checkpointing zur Nachverfolgung des Verarbeitungsfortschritts
-
Anpassung an Änderungen der Stream-Kapazität.
-
Vereinfachtes verteiltes Rechnen für die Verarbeitung von CDC-Datensätzen.
Der folgende Abschnitt beschreibt, warum und wie die Kinesis Client Library (KCL) zur Verarbeitung von Streams verwendet wird, und bietet ein Beispiel für die Verarbeitung eines Amazon Keyspaces CDC-Streams mit der KCL.
Preisinformationen finden Sie unter Amazon Keyspaces (für Apache Cassandra)
Was ist die Kinesis Client Library?
Die Kinesis Client Library (KCL) ist eine eigenständige Java-Softwarebibliothek, die entwickelt wurde, um den Prozess der Nutzung und Verarbeitung von Daten aus Streams zu vereinfachen. KCL bewältigt viele der komplexen Aufgaben im Zusammenhang mit verteilter Datenverarbeitung, sodass Sie sich bei der Verarbeitung von Stream-Daten auf die Implementierung Ihrer Geschäftslogik konzentrieren können. KCL verwaltet Aktivitäten wie den Lastenausgleich zwischen mehreren Workern, die Reaktion auf Worker-Ausfälle, Checkpoints verarbeiteter Datensätze und die Reaktion auf Änderungen der Anzahl der Shards im Stream.
Um Amazon Keyspaces CDC-Streams zu verarbeiten, können Sie die in der KCL enthaltenen Entwurfsmuster für die Arbeit mit Stream-Shards und Stream-Datensätzen verwenden. Die KCL vereinfacht die Codierung durch Bereitstellen nützlicher Abstraktionen oberhalb der Low-Level-Kinesis-Data-Streams-API. Weitere Informationen zur KCL finden Sie unter Develop Consumers with KCL im Amazon Kinesis Data Streams Developer Guide.
Um Anwendungen mit der KCL zu schreiben, verwenden Sie den Amazon Keyspaces Streams Kinesis Adapter. Der Kinesis-Adapter implementiert die Kinesis Data Streams-Schnittstelle, sodass Sie die KCL für die Nutzung und Verarbeitung von Datensätzen aus Amazon Keyspaces-Streams verwenden können. Anweisungen zur Einrichtung und Installation des Amazon Keyspaces Streams Kinesis-Adapters finden Sie im GitHub
Das folgende Diagramm zeigt, wie diese Bibliotheken miteinander interagieren.

KCL wird häufig aktualisiert, um neuere Versionen der zugrunde liegenden Bibliotheken, Sicherheitsverbesserungen und Bugfixes zu integrieren. Wir empfehlen Ihnen, die neueste Version von KCL zu verwenden, um bekannte Probleme zu vermeiden und von allen aktuellen Verbesserungen zu profitieren. Die neueste KCL-Version finden Sie im KCL-Repository. GitHub
KCL-Konzepte
Bevor Sie eine Verbraucheranwendung mithilfe von KCL implementieren, sollten Sie die folgenden Konzepte verstehen:
- KCL-Anwendung für Privatanwender
-
Eine KCL-Verbraucheranwendung ist ein Programm, das Daten aus einem Amazon Keyspaces CDC-Stream verarbeitet. Die KCL fungiert als Vermittler zwischen Ihrem Verbraucheranwendungscode und dem Amazon Keyspaces CDC-Stream.
- Arbeiter
-
Ein Worker ist eine Ausführungseinheit Ihrer KCL-Consumer-Anwendung, die Daten aus dem Amazon Keyspaces CDC-Stream verarbeitet. Ihre Anwendung kann mehrere Worker ausführen, die auf mehrere Instances verteilt sind.
- Prozessor aufnehmen
-
Ein Record Processor ist die Logik in Ihrer Anwendung, die Daten aus einem Shard im Amazon Keyspaces CDC-Stream verarbeitet. Ein Datensatzprozessor wird von einem Worker für jeden von ihm verwalteten Shard instanziiert.
- Leasing
-
Bei einem Leasing handelt es sich um die Verantwortung für die Verarbeitung eines Shards. Arbeiter koordinieren anhand von Leasingverträgen, welcher Arbeiter welchen Shard bearbeitet. KCL speichert Leasingdaten in einer Tabelle in Amazon Keyspaces.
- Checkpoint
-
Ein Checkpoint ist eine Aufzeichnung der Position im Shard, bis zu der der Datensatzprozessor Datensätze erfolgreich verarbeitet hat. Checkpointing ermöglicht es Ihrer Anwendung, die Verarbeitung an der Stelle fortzusetzen, an der sie aufgehört hat, wenn ein Mitarbeiter ausfällt.
Wenn der Amazon Keyspaces Kinesis-Adapter installiert ist, können Sie mit der Entwicklung anhand der KCL-Schnittstelle beginnen, wobei die API-Aufrufe nahtlos an den Amazon Keyspaces-Stream-Endpunkt weitergeleitet werden. Eine Liste der verfügbaren Endpunkte finden Sie unter. So greifen Sie in Amazon Keyspaces auf CDC-Stream-Endpunkte zu
Beim Start der Anwendung wird die KCL aufgerufen, einen Worker zu instanziieren. Sie müssen dem Worker Konfigurationsinformationen für die Anwendung zur Verfügung stellen, z. B. den Stream-Deskriptor und die AWS Anmeldeinformationen sowie den Namen einer von Ihnen angegebenen Datensatzprozessorklasse. Da der Code im Datensatzprozessor ausgeführt wird, erledigt der Worker die folgenden Aufgaben:
-
Stellt eine Verbindung mit dem Stream her
-
Listet die Shards innerhalb des Streams auf
-
Koordiniert Shard-Zuordnungen mit anderen Auftragnehmern (wenn vorhanden)
-
Instanziiert einen Datensatzverarbeiter für jeden Shard, der verwaltet wird
-
Ruft Datensätze aus dem Stream per Pull ab
-
Überträgt per Push Datensätze an den entsprechenden Datensatzverarbeiter
-
Verwendet Checkpoints für verarbeitete Datensätze
-
Gleicht Shard-Auftragnehmer-Zuordnungen aus, wenn die Auftragnehmer-Instance Änderungen zählt
-
Gleicht Shard-Worker-Zuordnungen aus, wenn Shards aufgeteilt werden