Adatok replikálása Egy Kafka-fürtből az Event Hubsba az Apache Kafka Mirror Maker 2 használatával

Ez az oktatóanyag bemutatja, hogyan replikálhat adatokat egy meglévő Kafka-fürtből Azure Event Hubs a Mirror Maker 2 használatával.

A Kafka MirrorMaker és az Event Hubs közötti események áramlását ábrázoló kép.

Megjegyzés

Ez a minta elérhető a GitHubon.

Eben az oktatóanyagban az alábbiakkal fog megismerkedni:

  • Event Hubs-névtér létrehozása
  • Meglévő Kafka-fürt beállítása vagy használata
  • A Kafka Mirror Maker 2 konfigurálása
  • A Kafka Mirror Maker 2 futtatása

Bevezetés

Az Apache Kafka MirrorMaker 2.0 (MM2) úgy lett kialakítva, hogy megkönnyítse a témakörök tükrözése vagy replikálása egyik Kafka-fürtről a másikra. A Mirror Maker a Kafka Connect-keretrendszert használja a konfiguráció és a skálázás egyszerűsítéséhez. A Kafka MirrorMakerről további információt a Kafka Mirroring/MirrorMaker útmutatójában talál.

Mivel Azure Event Hubs kompatibilis az Apache Kafka protokollal, a Mirror Maker 2 használatával replikálhatja az adatokat egy meglévő Kafka-fürt és egy Event Hubs-névtér között.

A Mirror Maker 2 dinamikusan észleli a témakörök módosításait, és biztosítja a forrás- és céltémakör-tulajdonságok szinkronizálását, beleértve az eltolásokat és a partíciókat. Az adatok kétirányú replikálására használható a Kafka-fürt és az Event Hubs-névtér között.

Előfeltételek

Az oktatóanyag elvégzéséhez győződjön meg arról, hogy rendelkezik a következőkkel:

  • Olvassa át az Apache Kafkához készült Event Hubsot ismertető cikket.
  • Azure-előfizetés. Ha még nem rendelkezik ilyen fiókkal, hozzon létre egy ingyenes fiókot a kezdés előtt.
  • Java Fejlesztői készlet (JDK) 1.7+
    • Ubuntu rendszeren futtassa az apt-get install default-jdk parancsot a JDK telepítéséhez.
    • Ügyeljen arra, hogy a JAVA_HOME környezeti változó arra a mappára mutasson, ahová a JDK telepítve lett.
  • Maven bináris archívum letöltése és telepítése
    • Ubuntu rendszeren futtathatja az apt-get install maven parancsot a Maven telepítéséhez.
  • Git
    • Ubuntu rendszeren futtathatja a sudo apt-get install git parancsot a Git telepítéséhez.
  • Apache Kafka-disztribúció
    • Töltse le az előnyben részesített Apache Kafka-disztribúciót (amelynek tartalmaznia kell a Mirror Maker 2 disztribúciót).)

Event Hubs-névtér létrehozása

Az Event Hubs-szolgáltatásokból való küldéshez és fogadáshoz szükség van egy Event Hubs-névtérre. A névtér és az eseményközpont létrehozásának utasításait az Eseményközpont létrehozása című témakörben találja. Győződjön meg arról, hogy az Event Hubs kapcsolati sztring későbbi használatra másolja.

A példaprojekt klónozása

Most, hogy már rendelkezik Event Hubs-kapcsolati sztring, klónozza a Kafka-adattár Azure Event Hubs, és keresse meg az mirror-maker-2 almappát:

git clone https://github.com/Azure/azure-event-hubs-for-kafka.git
cd azure-event-hubs-for-kafka/tutorials/mirror-maker-2

Meglévő Kafka-fürt beállítása vagy használata

Ha nem rendelkezik meglévő Kafka-fürttel, a Kafka rövid útmutatója segítségével állítson be egy Kafka-fürtöt a kívánt beállításokkal (vagy használjon egy meglévő Kafka-fürtöt). Tesztelési célokból létrehozhat néhány témakört az újonnan létrehozott Kafka-fürtön, és közzéteheti az adatokat.

Ha már rendelkezik meglévő Kafka-fürtel a helyszínen vagy egy felügyelt Kafka-felhőszolgáltatásban, akkor a használatával replikálhatja a meglévő adatokat az Event Hubsba.

A Kafka Mirror Maker 2 konfigurálása

Az Apache Kafka-disztribúció olyan szkripttel connect-mirror-maker.sh rendelkezik, amely egy elosztott Mirror Maker 2-fürtöt implementáló Kafka-kódtárba van csomagolva. A Feldolgozók csatlakoztatása belsőleg, konfigurációs fájl alapján kezeli. A MirrorMaker-illesztő belsőleg hozza létre és kezeli az egyes összekötők párjait – MirrorSource Connector, MirrorSink Connector, MirrorCheckpoint Connector és MirrorHeartbeat Connector.

  1. A Mirror Maker 2 adatok replikálására való konfigurálásához frissítenie kell a Mirror Maker 2 konfigurációs fájlját kafka-to-eh-connect-mirror-maker.properties a replikációs topológia meghatározásához.

  2. A konfigurációs fájlban adja meg a kafka-to-eh-connect-mirror-maker.properties Kafka-fürt(forrás) és az Event Hubs (cél) számára használni kívánt fürtaliasokat.

     # cluster aliases 
     clusters = source, destination
    
  3. Ezután adja meg a forrás csatlakozási adatait, amely a Kafka-fürt.

     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. Adja meg a cél csatlakozási adatait, amely a létrehozott Event Hubs-névtér.

     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. Engedélyezze a replikációs folyamatot a forrás Kafka-fürtről a cél Event Hubs-névtérbe.

     source->destination.enabled = true
     source->destination.topics = .*
    
  6. Frissítse a Mirror Maker által a célhelyen létrehozott távoli témakörök és belső témakörök replikációs tényezőjét.

     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. Ezután átmásolhatja kafka-to-eh-connect-mirror-maker.properties a konfigurációs fájlt a Kafka-disztribúció konfigurációs könyvtárába, és az alábbi paranccsal futtathatja a Mirror Maker 2 szkriptet.

     ./bin/connect-mirror-maker.sh ./config/kafka-to-eh-connect-mirror-maker.properties
    
  8. A szkript sikeres végrehajtása után látnia kell, hogy a Kafka-témakörök és -események replikálódnak az Event Hubs-névtérbe.

  9. Annak ellenőrzéséhez, hogy az események a Kafka-kompatibilis Event Hubsba kerülnek-e, tekintse meg a bejövő forgalom statisztikáit a Azure Portal, vagy futtasson egy fogyasztót az Event Hubson.

Példák

Tekintse meg a következő mintákat a GitHubon:

Következő lépések

Ha többet szeretne megtudni a Kafkához készült Event Hubsról, tekintse meg az alábbi cikkeket: