Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Tutorial wird gezeigt, wie Sie mithilfe von MirrorMaker 2 Daten aus einem vorhandenen Kafka-Cluster in Azure Event Hubs replizieren.
Hinweis
Dieses Beispiel ist auf GitHub verfügbar.
In diesem Tutorial lernen Sie Folgendes:
- Erstellen eines Event Hubs-Namespace
- Einrichten oder Verwenden eines vorhandenen Kafka-Clusters
- Konfigurieren von Kafka MirrorMaker 2
- Ausführen von Kafka MirrorMaker 2
Einführung
Apache Kafka MirrorMaker 2.0 (MM2) wurde zur Vereinfachung der Spiegelung oder Replikation von Themen zwischen Kafka-Clustern konzipiert. MirrorMaker verwendet das Kafka Connect-Framework, um die Konfiguration und Skalierung zu vereinfachen. Ausführlichere Informationen zu Kafka MirrorMaker finden Sie im Leitfaden zur Kafka-Spiegelung und zu MirrorMaker.
Da Azure Event Hubs mit dem Apache Kafka-Protokoll kompatibel ist, können Sie MirrorMaker 2 verwenden, um Daten zwischen einem vorhandenen Kafka-Cluster und einem Event Hubs-Namespace zu replizieren.
MirrorMaker 2 erkennt dynamisch Änderungen an Themen und stellt sicher, dass Eigenschaften von Quell- und Zielthemen synchronisiert werden, einschließlich Offsets und Partitionen. Es kann verwendet werden, um Daten bidirektional zwischen Kafka-Cluster und Event Hubs-Namespace zu replizieren.
Voraussetzungen
Damit Sie dieses Tutorial ausführen können, benötigen Sie folgende Komponenten:
- Lesen Sie den Artikel Event Hubs für Apache Kafka.
- Ein Azure-Abonnement. Sollten Sie kein Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.
-
Java Development Kit (JDK) 1.7+
- Führen Sie unter Ubuntu
apt-get install default-jdk
aus, um das JDK zu installieren. - Achten Sie darauf, dass die Umgebungsvariable „JAVA_HOME“ auf den Ordner verweist, in dem das JDK installiert ist.
- Führen Sie unter Ubuntu
- Führen Sie den Download und die Installation eines binären Maven-Archivs durch.
- Unter Ubuntu können Sie
apt-get install maven
ausführen, um Maven zu installieren.
- Unter Ubuntu können Sie
-
Git-Client
- Unter Ubuntu können Sie
sudo apt-get install git
ausführen, um Git zu installieren.
- Unter Ubuntu können Sie
-
Apache Kafka-Distribution
- Laden Sie die bevorzugte Apache Kafka-Distribution herunter. (Sie sollte die Mirror Maker 2-Distribution enthalten.)
Erstellen eines Event Hubs-Namespace
Ein Event Hubs-Namespace ist erforderlich, um Nachrichten an einen Event Hubs-Dienst zu senden und von diesem zu empfangen. Anweisungen zum Erstellen eines Namespace und eines Event Hub finden Sie unter Erstellen eines Event Hubs. Kopieren Sie die Event Hubs-Verbindungszeichenfolge zur späteren Verwendung.
Klonen des Beispielprojekts
Nachdem Sie nun über eine Event Hubs-Verbindungszeichenfolge verfügen, können Sie das Azure Event Hubs für Kafka-Repository klonen und zum Unterordner mirror-maker-2
navigieren:
git clone https://github.com/Azure/azure-event-hubs-for-kafka.git
cd azure-event-hubs-for-kafka/tutorials/mirror-maker-2
Einrichten oder Verwenden eines vorhandenen Kafka-Clusters
Wenn Sie nicht über einen vorhandenen Kafka-Cluster verfügen, verwenden Sie die Kafka-Schnellstartanleitung, um einen Kafka-Cluster mit den gewünschten Einstellungen einzurichten. (Oder verwenden Sie einen vorhandenen Kafka-Cluster.) Zu Testzwecken können Sie auch einige Themen im neu erstellten Kafka-Cluster erstellen und Daten darin veröffentlichen.
Wenn Sie bereits über einen Kafka-Cluster in der lokalen Umgebung oder in einem verwalteten Kafka-Clouddienst verfügen, können Sie mit ihm vorhandene Daten in Event Hubs replizieren.
Konfigurieren von Kafka MirrorMaker 2
Die Apache Kafka-Distribution enthält das Skript connect-mirror-maker.sh
, das mit der Kafka-Bibliothek gebündelt ist, die einen verteilten Mirror Maker 2-Cluster implementiert. Sie verwaltet die Connect-Worker intern basierend auf einer Konfigurationsdatei. Intern erstellt und verarbeitet der MirrorMaker-Treiber Paare aus den jeweiligen Connectors: MirrorSource-Connector, MirrorSink-Connector, MirrorCheckpoint-Connector und MirrorHeartbeat-Connector.
Um MirrorMaker 2 zum Replizieren von Daten zu konfigurieren, müssen Sie die MirrorMaker 2-Konfigurationsdatei
kafka-to-eh-connect-mirror-maker.properties
aktualisieren, um die Replikationstopologie zu definieren.Definieren Sie in der Konfigurationsdatei
kafka-to-eh-connect-mirror-maker.properties
Clusteraliase, die Sie für Ihren Kafka-Cluster (Quelle) und Event Hubs (Ziel) verwenden möchten.# cluster aliases clusters = source, destination
Geben Sie dann die Verbindungsinformationen für Ihre Quelle an, bei der es sich um Ihren Kafka-Cluster handelt.
source.bootstrap.servers = your-kafka-cluster-hostname:9092 #source.security.protocol=SASL_SSL #source.sasl.mechanism=PLAIN #source.sasl.jaas.config=<replace sasl jaas config of your Kafka cluster>;
Geben Sie Verbindungsinformationen für das Ziel an, d. h. den von Ihnen erstellten Event Hubs-Namespace.
destination.bootstrap.servers = <your-enventhubs-namespace>.servicebus.windows.net:9093 destination.security.protocol=SASL_SSL destination.sasl.mechanism=PLAIN destination.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username='$ConnectionString' password='<Your Event Hubs namespace connection string.>';
Aktivieren Sie den Replikationsfluss vom Kafka-Quellcluster zum Event Hubs-Zielnamespace.
source->destination.enabled = true source->destination.topics = .*
Aktualisieren Sie den Replikationsfaktor der Remotethemen und internen Themen, die MirrorMaker am Ziel erstellt.
replication.factor=3 checkpoints.topic.replication.factor=3 heartbeats.topic.replication.factor=3 offset-syncs.topic.replication.factor=3 offset.storage.replication.factor=3 status.storage.replication.factor=3 config.storage.replication.factor=3
Anschließend kopieren Sie die Konfigurationsdatei
kafka-to-eh-connect-mirror-maker.properties
in das Konfigurationsverzeichnis der Kafka-Distribution und können das MirrorMaker 2-Skript mithilfe des folgenden Befehls ausführen:./bin/connect-mirror-maker.sh ./config/kafka-to-eh-connect-mirror-maker.properties
Nach erfolgreicher Ausführung des Skripts sollten die Kafka-Themen und -Ereignisse in Ihrem Event Hubs-Namespace repliziert werden.
Sie können überprüfen, ob die Ereignisse die Kafka-fähige Event Hubs-Instanz erreichen, indem Sie im Azure-Portal die Eingangsstatistiken anzeigen oder einen Consumer für Event Hubs ausführen.
Beispiele
Im Folgenden sind auf GitHub verfügbare Beispiele aufgeführt:
Wenn Sie Apache Kafka in Kubernetes mithilfe des CNCF-Strimzi-Operators hosten, können Sie das Strimzi MirrorMaker 2-Beispiel für Event Hubs verwenden.
Nächste Schritte
Weitere Informationen zu Event Hubs für Kafka finden Sie in folgenden Artikeln: