Partage via


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.

Image montrant le flux d’événements de Kafka MirrorMaker vers Event Hubs.

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é.
  • Téléchargé et installé une archive binaire Maven.
    • Sur Ubuntu, vous pouvez exécuter apt-get install maven pour installer Maven.
  • Git
    • Sur Ubuntu, vous pouvez exécuter sudo apt-get install git pour installer Git.
  • 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.

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

  2. 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
    
  3. 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>;
    
  4. 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.>';
    
  5. 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 = .*
    
  6. 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
    
  7. 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
    
  8. 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.

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

Étapes suivantes

Pour plus d’informations sur Event Hubs pour Kafka, consultez les articles suivants :