Streaming mit Apache Kafka verwenden

Verwenden Sie Apache Kafka mit Oracle Cloud Infrastructure Streaming.

Mit Oracle Cloud Infrastructure Streaming können Benutzer von Apache Kafka das Setup, die Wartung und das Infrastrukturmanagement auslagern, die für das Hosting ihres eigenen Zookeeper- und Kafka-Clusters erforderlich sind.

Streaming ist mit den meisten Kafka-APIs kompatibel. So können Sie für Kafka geschriebene Anwendungen verwenden, um Nachrichten an den Streaming-Service zu senden und von diesem zu empfangen, ohne Ihren Code umschreiben zu müssen. Weitere Informationen finden Sie unter Kafka-APIs verwenden.

Streaming kann auch das Kafka Connect-Ökosystem verwenden, um eine direkte Verbindung mit externen Quellen herzustellen, wie Datenbanken, Objektspeichern oder Microservices in Oracle Cloud. Kafka-Connectors können Topics einfach und automatisch erstellen, veröffentlichen und bereitstellen. Sie nutzen dabei den großen Durchsatz und Die hohe Dauerhaftigkeit des Streaming-Service. Weitere Informationen finden Sie unter Kafka Connect verwenden.

Anwendungsfälle für Streaming und Kafka:

  • Daten über den JDBC-Connector aus Streaming in Autonomous Data Warehouse verschieben, um erweiterte Analysen und Visualisierungen durchzuführen

  • Mit dem Oracle GoldenGate-Connector für Big Data Service können Sie eine ereignisgesteuerte Anwendung erstellen

  • Verschieben Sie Daten über den HDFS/S3-Connector aus Streaming in Oracle Object Storage, um sie langfristig zu speichern oder Hadoop/Spark-Jobs auszuführen.

Kafka-API-Unterstützung

Streaming bietet vollständige Upstreamkompatibilität mit den neuesten Versionen von Kafka-APIs. Streaming unterstützt die folgenden Kafka-APIs:

Die folgenden Kafka-APIs und -Features sind noch nicht im Streaming-Service implementiert:

Kafka-Clients

Während viele Kafka-Clients verfügbar sind, empfehlen wir die Clients, die vollständig getestet und für die Arbeit mit dem Streaming-Service zertifiziert wurden.

Streaming unterstützt alle Versionen von apache-kafka-java.

Streaming unterstützt auch die folgenden Kafka-Clients nach bestem Bemühen:

Voraussetzungen und Einschränkungen

Die Implementierung der Kafka-Kompatibilität in Streaming führt zu den folgenden Konfigurationen, Einschränkungen und Verhaltensweisen.

Verlustlose Konfiguration

Streaming unterstützt nur verlustlose Kafka-Konfigurationen. Daten werden auf drei Arten repliziert. Nachrichten von Producers initiieren erst dann eine Bestätigung (ACK) von Streaming, wenn mindestens zwei Replikate synchron sind.

Eindeutige Streamnamen

Wenn in einem Compartment Streams mit denselben Namen vorhanden sind, können Sie Kafka erst dann mit Streaming verwenden, nachdem Sie die duplizierten Streams gelöscht haben, es sei denn, die Streams befinden Sich in unterschiedlichen Streampools. Zwei Streams mit demselben Namen können nur dann in demselben Compartment vorhanden sein, wenn sich die Streams in unterschiedlichen Streampools befinden.

Doppelte Streamnamen führen ansonsten zum Fehler "Authentifizierung nicht erfolgreich". Wenn Sie Ihre Streams nicht löschen möchten, wenden Sie sich an das Streaming-Team, damit Ihre Streams ohne Datenverlust umbenannt werden können.

Load-Balancing-Verbindungsrecycling

Da das Kafka-Protokoll langlebige TCP-Verbindungen verwendet, implementiert der Kafka-Kompatibilitätslayer von Streaming einen Load-Balancing-Mechanismus, um Verbindungen zwischen Frontend-Knoten regelmäßig auszugleichen. Dieser Mechanismus schließt Verbindungen in regelmäßigen Abständen, um neue Verbindungen zu erzwingen. Die meisten Kafka-SDKs verarbeiten diese Verbindungen automatisch beim Konsumieren, aber die Produktion in Streaming unter Verwendung der Kafka-API kann Verbindungsfehler verursachen. Diese können durch Hinzufügen von Wiederholungsversuchen zu Ihren Anforderungen gemindert werden. Wiederholungsversuche sind Teil des Kafka-SDK und werden automatisch aktiviert. Sie können ihr Verhalten explizit konfigurieren.