Delen via


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.

Afbeelding van de stroom gebeurtenissen van Kafka MirrorMaker naar Event Hubs.

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.
  • Een binair Maven-archief downloaden en installeren
    • Op Ubuntu kunt u apt-get install maven uitvoeren om Maven te installeren.
  • Git
    • Op Ubuntu kunt u sudo apt-get install git uitvoeren om Git te installeren.
  • 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.

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

  2. 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
    
  3. 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>;
    
  4. 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.>';
    
  5. Schakel de replicatiestroom van het Kafka-broncluster in naar de Event Hubs-naamruimte.

     source->destination.enabled = true
     source->destination.topics = .*
    
  6. 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
    
  7. 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
    
  8. Wanneer het script is uitgevoerd, ziet u de Kafka-onderwerpen en -gebeurtenissen die worden gerepliceerd naar uw Event Hubs-naamruimte.

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

Volgende stappen

Zie de volgende artikelen voor meer informatie over Event Hubs voor Kafka: