Gegevens repliceren van een Kafka-cluster naar Event Hubs met behulp van Apache Kafka Mirror Maker 1

In deze zelfstudie ziet u hoe u een Kafka-broker spiegelt in een Azure Event Hubs met behulp van Kafka Mirror Maker 1.

Kafka MirrorMaker met Event Hubs

Notitie

Dit voorbeeld is beschikbaar op GitHub

Notitie

Dit artikel bevat verwijzingen naar een term die microsoft niet meer gebruikt. Zodra de term uit de software wordt verwijderd, verwijderen we deze uit dit artikel.

In deze zelfstudie leert u het volgende:

  • Een Event Hubs-naamruimte maken
  • Het voorbeeldproject klonen
  • Een Kafka-cluster instellen
  • Kafka MirrorMaker configureren
  • Kafka MirrorMaker uitvoeren

Introductie

Deze zelfstudie laat zien hoe een Event Hub en Kafka MirrorMaker een bestaande Kafka-pijplijn in Azure kunnen integreren door de Kafka-invoerstroom in de Event Hubs-service te spiegelen, waardoor Apache Kafka-streams kunnen worden geïntegreerd met behulp van verschillende federatiepatronen.

Met een Azure Event Hubs Kafka-eindpunt kunt u verbinding maken met Azure Event Hubs met behulp van het Kafka-protocol (kafka-clients). Door minimale wijzigingen aan te brengen in een Kafka-toepassing, kunt u verbinding maken met Azure Event Hubs en profiteren van de voordelen van het Azure-ecosysteem. Event Hubs ondersteunt momenteel het protocol van Apache Kafka versies 1.0 en hoger.

U kunt MirrorMaker 1 van Apache Kafka unidirectioneel gebruiken van Apache Kafka naar Event Hubs. MirrorMaker 2 kan in beide richtingen worden gebruikt, maar de MirrorCheckpointConnector en MirrorHeartbeatConnector die in MirrorMaker 2 kunnen worden geconfigureerd , moeten beide worden geconfigureerd om te verwijzen naar de Apache Kafka-broker en niet naar Event Hubs. In deze zelfstudie ziet u het configureren van MirrorMaker 1.

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

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-connection string kopieert voor later gebruik.

Het voorbeeldproject klonen

Nu u een Event Hubs-connection string hebt, kloont u de Azure Event Hubs voor de Kafka-opslagplaats en navigeert u naar de mirror-maker submap:

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

Een Kafka-cluster instellen

Gebruik de Kafka-snelstartgids om een cluster in te stellen met de gewenste instellingen (of gebruik een bestaand Kafka-cluster).

Kafka MirrorMaker configureren

Kafka MirrorMaker maakt het 'spiegelen' van een stroom mogelijk. Op basis van kafka-bron- en doelclusters zorgt MirrorMaker ervoor dat alle berichten die naar het broncluster worden verzonden, worden ontvangen door zowel de bron- als doelclusters. In dit voorbeeld ziet u hoe u een Kafka-broncluster spiegelt met een doel-Event Hub. Dit scenario kan worden gebruikt om gegevens van een bestaande Kafka-pijplijn naar Event Hubs te verzenden zonder de gegevensstroom te onderbreken.

Zie de Kafka Mirroring/MirrorMaker-handleiding voor meer gedetailleerde informatie over Kafka MirrorMaker.

Als u Kafka MirrorMaker wilt configureren, geeft u het een Kafka-cluster als consument/bron en een Event Hub als producent/bestemming.

Consumentenconfiguratie

Werk het configuratiebestand voor consumenten bij source-kafka.config, waarmee MirrorMaker de eigenschappen van het Kafka-broncluster doorgeeft.

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

Producentconfiguratie

Werk nu het configuratiebestand mirror-eventhub.configvan de producent bij, waarmee MirrorMaker de gedupliceerde (of gespiegelde) gegevens naar de Event Hubs-service moet verzenden. bootstrap.servers Wijzig en sasl.jaas.config verwijst naar uw Event Hubs Kafka-eindpunt. De Event Hubs-service vereist beveiligde communicatie (SASL). Dit wordt bereikt door de laatste drie eigenschappen in de volgende configuratie in te stellen:

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}";

Belangrijk

Vervang {YOUR.EVENTHUBS.CONNECTION.STRING} door de verbindingsreeks voor uw Event Hubs-naamruimte. Zie Een verbindingsreeks voor Event Hubs ophalen voor instructies voor het ophalen van de verbindingsreeks. Hier volgt een voorbeeldconfiguratie: sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="$ConnectionString" password="Endpoint=sb://mynamespace.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=XXXXXXXXXXXXXXXX";

Kafka MirrorMaker uitvoeren

Voer het Kafka MirrorMaker-script uit vanuit de kafka-hoofdmap met behulp van de zojuist bijgewerkte configuratiebestanden. Zorg ervoor dat u de configuratiebestanden naar de kafka-hoofdmap kopieert of de paden bijwerkt met de volgende opdracht.

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

Als u wilt controleren of gebeurtenissen de Event Hub bereiken, raadpleegt u de statistieken voor inkomend verkeer in de Azure Portal of voert u een consument uit op de Event Hub.

Als MirrorMaker wordt uitgevoerd, worden gebeurtenissen die naar het kafka-broncluster worden verzonden, ontvangen door zowel het Kafka-cluster als de gespiegelde Event Hub. Met behulp van MirrorMaker en een Event Hubs Kafka-eindpunt kunt u een bestaande Kafka-pijplijn migreren naar de beheerde Azure Event Hubs-service zonder het bestaande cluster te wijzigen of een lopende gegevensstroom te onderbreken.

Voorbeelden

Bekijk de volgende voorbeelden op GitHub:

Volgende stappen

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