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.
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.
- 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
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.config
van 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:
- Voorbeeldcode voor deze zelfstudie op GitHub
- Azure Event Hubs Kafka MirrorMaker uitvoeren op een Azure Container Instance
Volgende stappen
Zie de volgende artikelen voor meer informatie over Event Hubs voor Kafka: