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

Ez az oktatóanyag bemutatja, hogyan tükrözhet egy Kafka-közvetítőt egy Azure Event Hubs a Kafka Mirror Maker 1 használatával.

Kafka MirrorMaker az Event Hubs szolgáltatással

Megjegyzés

Ez a minta elérhető a GitHubon.

Megjegyzés

Ez a cikk a Microsoft által már nem használt kifejezésre mutató hivatkozásokat tartalmaz. Ha a kifejezés el lesz távolítva a szoftverből, eltávolítjuk ebből a cikkből.

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

  • Event Hubs-névtér létrehozása
  • A példaprojekt klónozása
  • Kafka-fürt beállítása
  • A Kafka MirrorMaker konfigurálása
  • A Kafka MirrorMaker futtatása

Bevezetés

Ez az oktatóanyag bemutatja, hogy egy eseményközpont és a Kafka MirrorMaker hogyan integrálhat egy meglévő Kafka-folyamatot az Azure-ba a Kafka bemeneti adatfolyamának "tükrözésével" az Event Hubs szolgáltatásban, amely lehetővé teszi az Apache Kafka-streamek integrálását több összevonási minta használatával.

Egy Azure Event Hubs Kafka-végpont lehetővé teszi, hogy a Kafka protokoll (azaz a Kafka-ügyfelek) használatával csatlakozzon Azure Event Hubs. A Kafka-alkalmazások minimális módosításával csatlakozhat Azure Event Hubs, és élvezheti az Azure-ökoszisztéma előnyeit. Az Event Hubs jelenleg az Apache Kafka 1.0-s és újabb verzióinak protokollját támogatja.

Az Apache Kafka MirrorMaker 1-jét egyirányúan használhatja az Apache Kafkától az Event Hubsig. A MirrorMaker 2 mindkét irányban használható, de a MirrorCheckpointConnector MirrorMaker 2-ben konfigurálható és MirrorHeartbeatConnector azt is úgy kell konfigurálni, hogy az Apache Kafka közvetítőre mutasson, és ne az Event Hubsra. Ez az oktatóanyag a MirrorMaker 1 konfigurálását mutatja be.

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 nincs előfizetése, hozzon létre egy ingyenes fiókot, mielőtt hozzákezd.
  • 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.

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 almappát:

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

Kafka-fürt beállítása

A Kafka rövid útmutatójával beállíthat egy fürtöt a kívánt beállításokkal (vagy használhat egy meglévő Kafka-fürtöt).

A Kafka MirrorMaker konfigurálása

A Kafka MirrorMaker lehetővé teszi egy stream "tükrözését". A forrás- és cél Kafka-fürtök esetében a MirrorMaker biztosítja, hogy a forrásfürtnek küldött üzeneteket a forrás- és célfürtök is megkapják. Ez a példa bemutatja, hogyan tükrözhet egy forrás Kafka-fürtöt egy célesemény-központtal. Ez a forgatókönyv arra használható, hogy egy meglévő Kafka-folyamatból adatokat küldjön az Event Hubsnak anélkül, hogy megszakítja az adatáramlást.

A Kafka MirrorMakerről további információt a Kafka Mirroring/MirrorMaker útmutatójában talál.

A Kafka MirrorMaker konfigurálásához adjon neki egy Kafka-fürtöt fogyasztóként/forrásként, és egy eseményközpontot gyártóként/célhelyként.

Fogyasztói konfiguráció

Frissítse a fogyasztói konfigurációs fájlt source-kafka.config, amely tájékoztatja a MirrorMakert a forrás Kafka-fürt tulajdonságairól.

source-kafka.config
bootstrap.servers={SOURCE.KAFKA.IP.ADDRESS1}:{SOURCE.KAFKA.PORT1},{SOURCE.KAFKA.IP.ADDRESS2}:{SOURCE.KAFKA.PORT2},etc
group.id=example-mirrormaker-group
exclude.internal.topics=true
client.id=mirror_maker_consumer

Gyártó konfigurációja

Most frissítse a gyártó konfigurációs fájlját mirror-eventhub.config, amely arra utasítja a MirrorMakert, hogy küldje el a duplikált (vagy tükrözött) adatokat az Event Hubs szolgáltatásnak. Konkrétan módosítsa bootstrap.serverssasl.jaas.config és mutasson az Event Hubs Kafka-végpontra. Az Event Hubs szolgáltatás biztonságos (SASL) kommunikációt igényel, amely az utolsó három tulajdonság beállításával érhető el a következő konfigurációban:

mirror-eventhub.config
bootstrap.servers={YOUR.EVENTHUBS.FQDN}:9093
client.id=mirror_maker_producer

#Required for Event Hubs
sasl.mechanism=PLAIN
security.protocol=SASL_SSL
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="$ConnectionString" password="{YOUR.EVENTHUBS.CONNECTION.STRING}";

Fontos

Cserélje le a elemet {YOUR.EVENTHUBS.CONNECTION.STRING} az Event Hubs-névtér kapcsolati sztring. A kapcsolati sztring beszerzésére vonatkozó útmutatásért lásd: Event Hubs-kapcsolati sztring beszerzése. Íme egy példa konfigurációra: sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="$ConnectionString" password="Endpoint=sb://mynamespace.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=XXXXXXXXXXXXXXXX";

A Kafka MirrorMaker futtatása

Futtassa a Kafka MirrorMaker-szkriptet a legfelső szintű Kafka könyvtárból az újonnan frissített konfigurációs fájlok használatával. Győződjön meg arról, hogy másolja a konfigurációs fájlokat a legfelső szintű Kafka könyvtárba, vagy frissítse az elérési útjukat az alábbi parancsban.

bin/kafka-mirror-maker.sh --consumer.config source-kafka.config --num.streams 1 --producer.config mirror-eventhub.config --whitelist=".*"

Annak ellenőrzéséhez, hogy az események elérik-e az eseményközpontot, tekintse meg a Azure Portal bejövő forgalmának statisztikáit, vagy futtasson egy fogyasztót az eseményközpontban.

Ha a MirrorMaker fut, a forrás Kafka-fürtnek küldött eseményeket a Kafka-fürt és a tükrözött eseményközpont is fogadja. A MirrorMaker és egy Event Hubs Kafka-végpont használatával migrálhat egy meglévő Kafka-folyamatot a felügyelt Azure Event Hubs szolgáltatásba anélkül, hogy módosítaná a meglévő fürtöt, vagy megszakítaná a folyamatban lévő adatfolyamokat.

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: