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.

Obrázek znázorňující tok událostí z Kafka MirrorMakeru do služby Event Hubs

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á.
  • 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.
  • Git
    • Na Ubuntu můžete Git nainstalovat spuštěním příkazu sudo apt-get install git.
  • 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.

  1. 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.

  2. 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
    
  3. 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>;
    
  4. 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.>';
    
  5. 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 = .*
    
  6. 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
    
  7. 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
    
  8. 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.

  9. 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:

Další kroky

Další informace o službě Event Hubs pro Kafka najdete v následujících článcích: