View a markdown version of this page

Verwenden Sie die Kinesis Client Library (KCL), um Amazon Keyspaces-Streams zu verarbeiten - Amazon Keyspaces (für Apache Cassandra)

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 verarbeiten 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 Verfolgung 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 enthält ein Beispiel für die Verarbeitung eines Amazon Keyspaces CDC-Streams mit der KCL.

Informationen zur Preisgestaltung finden Sie unter Preise für 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 erledigt viele der komplexen Aufgaben, die mit verteilter Datenverarbeitung verbunden sind, sodass Sie sich bei der Verarbeitung von Stream-Daten auf die Implementierung Ihrer Geschäftslogik konzentrieren können. KCL verwaltet Aktivitäten wie den Lastausgleich zwischen mehreren Workern, das Reagieren auf Worker-Ausfälle, Checkpoints verarbeiteter Datensätze und das Reagieren auf Änderungen der Anzahl der Shards im Stream.

Um CDC-Streams von Amazon Keyspaces 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 Consumer 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 Repository. GitHub

Das folgende Diagramm zeigt, wie diese Bibliotheken miteinander interagieren.

Interaktion zwischen einer Client-Anwendung und Kinesis Data Streams, KCL, dem Amazon Keyspaces Streams Kinesis Adapter und Amazon Keyspaces-APIs bei der Verarbeitung von Amazon Keyspaces CDC-Stream-Datensätzen.

KCL wird regelmäßig 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 den neuesten Verbesserungen zu profitieren. Die neueste KCL-Version finden Sie im KCL-Repository. GitHub

KCL-Konzepte

Bevor Sie eine Verbraucheranwendung mit KCL implementieren, sollten Sie die folgenden Konzepte verstehen:

KCL-Verbraucheranwendung

Eine KCL-Verbraucheranwendung ist ein Programm, das Daten aus einem Amazon Keyspaces-CDC-Stream verarbeitet. Das KCL fungiert als Vermittler zwischen Ihrem Anwendungscode für Verbraucher und dem Amazon Keyspaces CDC-Stream.

Arbeiter

Ein Worker ist eine Ausführungseinheit Ihrer KCL-Verbraucheranwendung, die Daten aus dem Amazon Keyspaces CDC-Stream verarbeitet. In Ihrer Anwendung können mehrere Worker ausgeführt werden, die auf mehrere Instances verteilt sind.

Prozessor aufnehmen

Ein Datensatzprozessor ist die Logik in Ihrer Anwendung, die Daten von einem Shard im Amazon Keyspaces CDC-Stream verarbeitet. Ein Datensatzprozessor wird von einem Worker für jeden Shard, den er verwaltet, instanziiert.

Leasing

Ein Leasing steht für die Verarbeitungsverantwortung für einen Shard. Arbeiter nutzen Leasingverträge, um zu koordinieren, welcher Arbeiter welchen Shard bearbeitet. KCL speichert Leasingdaten in einer Tabelle in Amazon DynamoDB.

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 Worker ausfällt.

Wenn der Amazon Keyspaces Kinesis-Adapter installiert ist, können Sie mit der Entwicklung über die 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. Wie greife ich 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 Record-Processor-Klasse, die Sie angeben. 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