Replikace dat z clusteru Kafka do služby Event Hubs pomocí Apache Kafka Mirror Makeru 2
V tomto kurzu se dozvíte, jak replikovat data z existujícího clusteru Kafka do Azure Event Hubs pomocí Služby Mirror Maker 2.
Poznámka
Tato ukázka je k dispozici na GitHubu.
V tomto kurzu se naučíte:
- Vytvoření oboru názvů služby Event Hubs
- Nastavení nebo použití existujícího clusteru Kafka
- Konfigurace Kafka Mirror Makeru 2
- Spuštění Kafka Mirror Makeru 2
Úvod
Apache Kafka MirrorMaker 2.0 (MM2) je navržený tak, aby usnadnil zrcadlení nebo replikaci témat z jednoho clusteru Kafka do druhého. Mirror Maker používá architekturu Kafka Connect ke zjednodušení konfigurace a škálování. Podrobnější informace o nástroji Kafka MirrorMaker najdete v příručce Kafka Mirroring/MirrorMaker.
Protože Azure Event Hubs je kompatibilní s protokolem Apache Kafka, můžete k replikaci dat mezi existujícím clusterem Kafka a oborem názvů služby Event Hubs použít Mirror Maker 2.
Mirror Maker 2 dynamicky detekuje změny témat a zajišťuje synchronizaci vlastností zdrojového a cílového tématu, včetně posunů a oddílů. Dá se použít k obousměrné replikaci dat mezi clusterem Kafka a oborem názvů služby Event Hubs.
Požadavky
Abyste mohli absolvovat tento kurz, ujistěte se, že máte následující:
- Přečtěte si článek Event Hubs pro Apache Kafka.
- Předplatné Azure. Pokud ho nemáte, vytvořte si bezplatný účet , než začnete.
-
Java Development Kit (JDK) 1.7 nebo novější
- Na Ubuntu nainstalujte sadu JDK spuštěním příkazu
apt-get install default-jdk
. - Nezapomeňte nastavit proměnnou prostředí JAVA_HOME tak, aby odkazovala na složku, ve které je sada JDK nainstalovaná.
- Na Ubuntu nainstalujte sadu JDK spuštěním příkazu
-
Stažení a instalace binárního archivu Mavenu
- Na Ubuntu můžete Maven nainstalovat spuštěním příkazu
apt-get install maven
.
- Na Ubuntu můžete Maven nainstalovat spuštěním příkazu
-
Git
- Na Ubuntu můžete Git nainstalovat spuštěním příkazu
sudo apt-get install git
.
- Na Ubuntu můžete Git nainstalovat spuštěním příkazu
-
Distribuce Apache Kafka
- Stáhněte si upřednostňovanou distribuci Apache Kafka (která by měla obsahovat distribuci Mirror Maker 2).
Vytvoření oboru názvů služby Event Hubs
K odesílání do jakékoli služby Event Hubs a příjmu z ní se vyžaduje obor názvů služby Event Hubs. Pokyny k vytvoření oboru názvů a centra událostí najdete v tématu Vytvoření centra událostí . Nezapomeňte zkopírovat připojovací řetězec služby Event Hubs pro pozdější použití.
Naklonování ukázkového projektu
Teď, když máte připojovací řetězec služby Event Hubs, naklonujte Azure Event Hubs pro úložiště Kafka a přejděte do podsložkymirror-maker-2
:
git clone https://github.com/Azure/azure-event-hubs-for-kafka.git
cd azure-event-hubs-for-kafka/tutorials/mirror-maker-2
Nastavení nebo použití existujícího clusteru Kafka
Pokud nemáte existující cluster Kafka, použijte průvodce rychlým startem kafka a nastavte cluster Kafka s požadovaným nastavením (nebo použijte existující cluster Kafka). Pro účely testování můžete také vytvořit několik témat v nově vytvořeném clusteru Kafka a publikovat do nich data.
Pokud už máte existující cluster Kafka místně nebo ve spravované cloudové službě Kafka, můžete ho použít k replikaci existujících dat do služby Event Hubs.
Konfigurace Kafka Mirror Makeru 2
Distribuce Apache Kafka se dodává se skriptem connect-mirror-maker.sh
, který je součástí knihovny Kafka, která implementuje distribuovaný cluster Mirror Maker 2. Pracovní procesy Connect spravuje interně na základě konfiguračního souboru. Ovladač MirrorMaker interně vytváří a zpracovává dvojice jednotlivých konektorů – MirrorSource Connector, MirrorSink Connector, MirrorCheckpoint Connector a MirrorHeartbeat Connector.
Pokud chcete nakonfigurovat zrcadlový tvůrce 2 pro replikaci dat, musíte aktualizovat konfigurační soubor
kafka-to-eh-connect-mirror-maker.properties
Mirror Makeru 2 a definovat replikační topologii.V konfiguračním
kafka-to-eh-connect-mirror-maker.properties
souboru definujte aliasy clusteru, které plánujete používat pro cluster Kafka (zdroj) a Event Hubs (cíl).# cluster aliases clusters = source, destination
Pak zadejte informace o připojení pro zdroj, kterým je cluster Kafka.
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>;
Zadejte informace o připojení pro cíl, což je obor názvů služby Event Hubs, který jste vytvořili.
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.>';
Povolte tok replikace ze zdrojového clusteru Kafka do cílového oboru názvů služby Event Hubs.
source->destination.enabled = true source->destination.topics = .*
Aktualizujte faktor replikace vzdálených témat a interních témat, které tvůrce zrcadla vytváří v cíli.
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
Pak zkopírujete
kafka-to-eh-connect-mirror-maker.properties
konfigurační soubor do konfiguračního adresáře distribuce Kafka a pomocí následujícího příkazu můžete spustit skript Mirror Maker 2../bin/connect-mirror-maker.sh ./config/kafka-to-eh-connect-mirror-maker.properties
Po úspěšném spuštění skriptu byste měli vidět, jak se témata a události Kafka replikují do oboru názvů služby Event Hubs.
Pokud chcete ověřit, že události přejdou do služby Event Hubs s podporou Kafka, podívejte se na statistiky příchozího přenosu dat v Azure Portal nebo spusťte příjemce pro službu Event Hubs.
Ukázky
Podívejte se na následující ukázky na GitHubu:
Pokud hostujete Apache Kafka v Kubernetes pomocí operátoru CNCF Strimzi, můžete pro Event Hubs použít ukázku Strimzi Mirror Maker 2.
Další kroky
Další informace o službě Event Hubs pro Kafka najdete v následujících článcích: