Répliquer des données d’un cluster Kafka vers Event Hubs à l’aide d’Apache Kafka Mirror Maker 2
Ce tutoriel montre comment répliquer des données à partir d’un cluster Kafka existant vers Azure Event Hubs à l’aide de Mirror Maker 2.
Notes
Cet exemple est disponible sur GitHub.
Dans ce tutoriel, vous allez apprendre à :
- Créer un espace de noms Event Hubs
- Configurer ou utiliser un cluster Kafka existant
- Configurer Kafka Mirror Maker 2
- Exécuter Kafka Mirror Maker 2
Introduction
Apache Kafka MirrorMaker 2.0 (MM2) est conçu pour faciliter la mise en miroir ou la réplication de rubriques d’un cluster Kafka vers un autre. Mirror Maker utilise l’infrastructure Kafka Connect pour simplifier la configuration et la mise à l’échelle. Pour plus d’informations sur Kafka MirrorMaker, voir le Guide Mise en miroir de Kafka/MirrorMaker.
Comme Azure Event Hubs est compatible avec le protocole Apache Kafka, vous pouvez utiliser Mirror Maker 2 pour répliquer des données entre un cluster Kafka existant et un espace de noms Event Hubs.
Mirror Maker 2 détecte dynamiquement les modifications apportées aux rubriques et garantit que les propriétés de rubrique source et cible sont synchronisées, notamment les décalages et les partitions. Il peut être utilisé pour répliquer des données bidirectionnellement entre le cluster Kafka et l’espace de noms Event Hubs.
Prérequis
Pour suivre ce tutoriel, veillez à disposer des éléments suivants :
- Lisez l’article Event Hubs pour Apache Kafka.
- Un abonnement Azure. Si vous n’en avez pas, créez un compte gratuit avant de commencer.
- Java Development Kit (JDK) 1.7+
- Sur Ubuntu, exécutez
apt-get install default-jdk
pour installer le JDK. - Veillez à définir la variable d’environnement JAVA_HOME pour qu’elle pointe vers le dossier dans lequel le JDK est installé.
- Sur Ubuntu, exécutez
- Téléchargé et installé une archive binaire Maven.
- Sur Ubuntu, vous pouvez exécuter
apt-get install maven
pour installer Maven.
- Sur Ubuntu, vous pouvez exécuter
- Git
- Sur Ubuntu, vous pouvez exécuter
sudo apt-get install git
pour installer Git.
- Sur Ubuntu, vous pouvez exécuter
- Distribution Apache Kafka
- Téléchargez la distribution Apache Kafka préférée (qui doit contenir la distribution Mirror Maker 2.)
Créer un espace de noms Event Hubs
Un espace de noms Event Hubs est requis pour échanger avec tout service Event Hubs. Pour obtenir des instructions sur la création d’un espace de noms et d’un Event Hub, consultez Créer un Event Hub. Veillez à copier la chaîne de connexion Event Hubs pour une utilisation ultérieure.
Cloner l’exemple de projet
Maintenant que vous disposez d’une chaîne de connexion Event Hubs, clonez le dépôt Azure Event Hubs pour Kafka, puis accédez au sous-dossier mirror-maker-2
:
git clone https://github.com/Azure/azure-event-hubs-for-kafka.git
cd azure-event-hubs-for-kafka/tutorials/mirror-maker-2
Configurer ou utiliser un cluster Kafka existant
Si vous n’avez pas de cluster Kafka existant, utilisez le guide de démarrage rapide Kafka pour configurer un cluster Kafka avec les paramètres souhaités (ou utilisez un cluster Kafka existant). À des fins de test, vous pouvez également créer quelques rubriques dans le cluster Kafka nouvellement créé et y publier des données.
Si vous disposez déjà d’un cluster Kafka local ou dans un service cloud Kafka managé, vous pouvez l’utiliser pour répliquer des données existantes sur Event Hubs.
Configurer Kafka Mirror Maker 2
La distribution Apache Kafka est fournie avec le script connect-mirror-maker.sh
groupé avec la bibliothèque Kafka qui implémente un cluster Mirror Maker 2 distribué. Il gère les workers Connect en interne en fonction d’un fichier de configuration. Le pilote MirrorMaker crée et gère en interne des paires de chaque connecteur : MirrorSource Connector, MirrorSink Connector, MirrorCheckpoint Connector et MirrorHeartbeat Connector.
Pour configurer Mirror Maker 2 afin de répliquer des données, vous devez mettre à jour le fichier de configuration Mirror Maker 2
kafka-to-eh-connect-mirror-maker.properties
afin de définir la topologie de réplication.Dans le fichier de configuration
kafka-to-eh-connect-mirror-maker.properties
, définissez les alias de cluster que vous envisagez d’utiliser pour votre cluster Kafka (source) et Event Hubs (destination).# cluster aliases clusters = source, destination
Spécifiez ensuite les informations de connexion pour votre source, qui est votre cluster Kafka.
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>;
Spécifiez les informations de connexion pour la destination, qui est l’espace de noms Event Hubs que vous avez créé.
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.>';
Activez le flux de réplication à partir du cluster Kafka source vers l’espace de noms Event Hubs de destination.
source->destination.enabled = true source->destination.topics = .*
Mettez à jour le facteur de réplication des rubriques distantes et des rubriques internes créées par Mirror Maker sur la destination.
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
Ensuite, vous copiez le fichier de configuration
kafka-to-eh-connect-mirror-maker.properties
dans le répertoire config de la distribution Kafka et vous pouvez exécuter le script Mirror Maker 2 à l’aide de la commande suivante../bin/connect-mirror-maker.sh ./config/kafka-to-eh-connect-mirror-maker.properties
Une fois le script exécuté avec succès, les rubriques et événements Kafka doivent être répliqués dans votre espace de noms Event Hubs.
Pour vérifier que les événements atteignent Event Hubs prenant en charge Kafka, consultez les statistiques d’entrée sur le portail Azure, ou exécutez un consommateur sur Event Hubs.
Exemples
Consultez les exemples suivants sur GitHub :
Si vous hébergez Apache Kafka sur Kubernetes à l’aide de l’opérateur CNCF Strimzi, vous pouvez utiliser l’exemple Strimzi Mirror Maker 2 pour Event Hubs.
Étapes suivantes
Pour plus d’informations sur Event Hubs pour Kafka, consultez les articles suivants :