Gegevens repliceren van een Kafka-cluster naar Event Hubs met behulp van Apache Kafka Mirror Maker 2
Deze zelfstudie laat zien hoe u gegevens van een bestaand Kafka-cluster repliceert naar Azure Event Hubs met behulp van Mirror Maker 2.
Notitie
Dit voorbeeld is beschikbaar op GitHub
In deze zelfstudie leert u het volgende:
- Een Event Hubs-naamruimte maken
- Een bestaand Kafka-cluster instellen of gebruiken
- Kafka Mirror Maker 2 configureren
- Kafka Mirror Maker 2 uitvoeren
Inleiding
Apache Kafka MirrorMaker 2.0 (MM2) is ontworpen om onderwerpen van het ene Kafka-cluster naar het andere gemakkelijker te spiegelen of te repliceren. Mirror Maker maakt gebruik van het Kafka Connect-framework om de configuratie en schaal te vereenvoudigen. Zie de Kafka Mirroring/MirrorMaker-handleiding voor meer informatie over Kafka Mirroring/MirrorMaker.
Omdat Azure Event Hubs compatibel is met het Apache Kafka-protocol, kunt u Mirror Maker 2 gebruiken om gegevens te repliceren tussen een bestaand Kafka-cluster en een Event Hubs-naamruimte.
Mirror Maker 2 detecteert dynamisch wijzigingen in onderwerpen en zorgt ervoor dat bron- en doelonderwerpeigenschappen worden gesynchroniseerd, inclusief offsets en partities. Het kan worden gebruikt om gegevens bidirectioneel te repliceren tussen het Kafka-cluster en de Event Hubs-naamruimte.
Vereisten
Het volgende moet zijn geïnstalleerd om deze zelfstudie te voltooien:
- Lees het artikel Event Hubs voor Apache Kafka door.
- Een Azure-abonnement. Als u nog geen abonnement hebt, maakt u een gratis account voordat u begint.
- Java Development Kit (JDK) 1.7+
- Voer op Ubuntu
apt-get install default-jdk
uit om de JDK te installeren. - Zorg dat de omgevingsvariabele JAVA_HOME verwijst naar de map waarin de JDK is geïnstalleerd.
- Voer op Ubuntu
- Een binair Maven-archief downloaden en installeren
- Op Ubuntu kunt u
apt-get install maven
uitvoeren om Maven te installeren.
- Op Ubuntu kunt u
- Git
- Op Ubuntu kunt u
sudo apt-get install git
uitvoeren om Git te installeren.
- Op Ubuntu kunt u
- Apache Kafka-distributie
- Download de voorkeursdistributie van Apache Kafka (die de Mirror Maker 2-distributie moet bevatten.)
Een Event Hubs-naamruimte maken
Er is een Event Hubs-naamruimte vereist om gegevens te verzenden naar en te ontvangen van Event Hubs-services. Zie Een Event Hub maken voor instructies voor het maken van een naamruimte en een Event Hub. Zorg ervoor dat u de Event Hubs-verbindingsreeks kopieert voor later gebruik.
Het voorbeeldproject klonen
Nu u een Event Hubs-verbindingsreeks hebt, kloont u de Azure Event Hubs voor Kafka-opslagplaats en navigeert u naar de mirror-maker-2
submap:
git clone https://github.com/Azure/azure-event-hubs-for-kafka.git
cd azure-event-hubs-for-kafka/tutorials/mirror-maker-2
Een bestaand Kafka-cluster instellen of gebruiken
Als u geen bestaand Kafka-cluster hebt, gebruikt u de quickstartgids voor Kafka om een Kafka-cluster in te stellen met de gewenste instellingen (of een bestaand Kafka-cluster te gebruiken). Voor testdoeleinden kunt u ook een aantal onderwerpen maken in het zojuist gemaakte Kafka-cluster en er gegevens naar publiceren.
Als u al een bestaand Kafka-cluster on-premises of in een beheerde Kafka-cloudservice hebt, kunt u deze gebruiken om bestaande gegevens te repliceren naar Event Hubs.
Kafka Mirror Maker 2 configureren
Apache Kafka-distributie wordt geleverd met connect-mirror-maker.sh
een script dat is gebundeld met de Kafka-bibliotheek waarmee een gedistribueerd Mirror Maker 2-cluster wordt geïmplementeerd. De connect-werkrollen worden intern beheerd op basis van een configuratiebestand. Intern MirrorMaker-stuurprogramma maakt en verwerkt paren van elke connector: MirrorSource Connector, MirrorSink Connector, MirrorCheckpoint Connector en MirrorHeartbeat Connector.
Als u Mirror Maker 2 wilt configureren om gegevens te repliceren, moet u het configuratiebestand
kafka-to-eh-connect-mirror-maker.properties
Mirror Maker 2 bijwerken om de replicatietopologie te definiëren.Definieer in het
kafka-to-eh-connect-mirror-maker.properties
configuratiebestand clusteraliassen die u wilt gebruiken voor uw Kafka-cluster(bron) en Event Hubs (doel).# cluster aliases clusters = source, destination
Geef vervolgens de verbindingsgegevens op voor uw bron. Dit is uw Kafka-cluster.
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>;
Geef verbindingsgegevens op voor de bestemming. Dit is de Event Hubs-naamruimte die u hebt gemaakt.
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.>';
Schakel de replicatiestroom van het Kafka-broncluster in naar de Event Hubs-naamruimte.
source->destination.enabled = true source->destination.topics = .*
Werk de replicatiefactor bij van de externe onderwerpen en interne onderwerpen die Mirror Maker op de bestemming maakt.
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
Vervolgens kopieert
kafka-to-eh-connect-mirror-maker.properties
u het configuratiebestand naar de configuratiemap van de Kafka-distributie en kunt u het script Mirror Maker 2 uitvoeren met behulp van de volgende opdracht../bin/connect-mirror-maker.sh ./config/kafka-to-eh-connect-mirror-maker.properties
Wanneer het script is uitgevoerd, ziet u de Kafka-onderwerpen en -gebeurtenissen die worden gerepliceerd naar uw Event Hubs-naamruimte.
Als u wilt controleren of gebeurtenissen deze naar de Event Hubs met Kafka maken, bekijkt u de statistieken voor inkomend verkeer in Azure Portal of voert u een consument uit op de Event Hubs.
Voorbeelden
Bekijk de volgende voorbeelden op GitHub:
Als u Apache Kafka op Kubernetes host met behulp van de CNCF Strimzi-operator, kunt u Strimzi Mirror Maker 2-voorbeeld gebruiken voor Event Hubs.
Volgende stappen
Zie de volgende artikelen voor meer informatie over Event Hubs voor Kafka:
- Explore samples on our GitHub (Voorbeelden bekijken op GitHub)