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 erstellte Anwendungen verwenden, um Nachrichten an den Streaming-Service zu senden und von ihm zu empfangen, ohne Ihren Code umschreiben zu müssen. Weitere Informationen finden Sie unter Kafka-APIs verwenden.

Streaming kann auch das Kafka Connect-Ökosystem für die direkte Verbindung mit externen Quellen wie Datenbanken, Objektspeichern oder Microservices in Oracle Cloud verwenden. Kafka-Connectors können Themen einfach und automatisch erstellen, dort veröffentlichen und bereitstellen. Sie nutzen dabei den hohen 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 Streams mit denselben Namen in einem Compartment vorhanden sind, können Sie Kafka erst dann mit Streaming verwenden, wenn Sie die doppelten Streams gelöscht haben, es sei denn, die Streams befinden sich in verschiedenen 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.