Condividi tramite


Replicare i dati da un cluster Kafka a Hub eventi usando Apache Kafka Mirror Maker 2

Questa esercitazione illustra come replicare i dati da un cluster Kafka esistente per Hub eventi di Azure usando Mirror Maker 2.

Immagine che mostra il flusso di eventi da Kafka MirrorMaker a Hub eventi.

Nota

Questo esempio è disponibile su GitHub

In questa esercitazione apprenderai a:

  • Creare uno spazio dei nomi di Hub eventi
  • Configurare o usare un cluster Kafka esistente
  • Configurare Kafka Mirror Maker 2
  • Eseguire Kafka Mirror Maker 2

Introduzione

Apache Kafka MirrorMaker 2.0 (MM2) è progettato per semplificare il mirroring o la replica degli argomenti da un cluster Kafka a un altro. Mirror Maker usa il framework Kafka Connect per semplificare la configurazione e il ridimensionamento. Per informazioni più dettagliate su Kafka MirrorMaker, vedere la guida Kafka Mirroring/MirrorMaker (Mirroring Kafka/MirrorMaker).

Poiché Hub eventi di Azure è compatibile con il protocollo Apache Kafka, è possibile usare Mirror Maker 2 per replicare i dati tra un cluster Kafka esistente e uno spazio dei nomi di Hub eventi.

Mirror Maker 2 rileva dinamicamente le modifiche agli argomenti e garantisce che le proprietà degli argomenti di origine e di destinazione vengano sincronizzate, inclusi offset e partizioni. Può essere usato per replicare i dati in modo bidirezionale tra il cluster Kafka e lo spazio dei nomi di Hub eventi.

Prerequisiti

Per completare questa esercitazione, accertarsi di avere:

  • Leggere con attenzione l'articolo Hub eventi per Apache Kafka.
  • Una sottoscrizione di Azure. Se non se ne dispone, creare un account gratuito prima di iniziare.
  • Java Development Kit (JDK) 1.7+
    • In Ubuntu eseguire apt-get install default-jdk per installare JDK.
    • Assicurarsi di impostare la variabile di ambiente JAVA_HOME in modo che faccia riferimento alla cartella di installazione di JDK.
  • Scaricare e installare un archivio binario Maven
    • In Ubuntu è possibile eseguire apt-get install maven per installare Maven.
  • Git
    • In Ubuntu è possibile eseguire sudo apt-get install git per installare Git.
  • Distribuzione di Apache Kafka
    • Scaricare la distribuzione di Apache Kafka preferita (che deve contenere la distribuzione di Mirror Maker 2).

Creare uno spazio dei nomi di Hub eventi

Per l'invio e la ricezione da qualsiasi servizio Hub eventi è richiesto uno spazio dei nomi di Hub eventi. Vedere Creazione di un hub eventi per istruzioni su come creare uno spazio dei nomi e un hub eventi. Assicurarsi di copiare la stringa di connessione di Hub eventi per usarla in seguito.

Clonare il progetto di esempio

Ora che si dispone di un stringa di connessione di Hub eventi, clonare il Hub eventi di Azure per il repository Kafka e passare alla mirror-maker-2 sottocartella:

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

Configurare o usare un cluster Kafka esistente

Se non si dispone di un cluster Kafka esistente, usare la guida introduttiva di Kafka per configurare un cluster Kafka con le impostazioni desiderate (o usare un cluster Kafka esistente). A scopo di test, è anche possibile creare un paio di argomenti nel cluster Kafka appena creato e pubblicarvi i dati.

Se si dispone già di un cluster Kafka esistente in locale o in un servizio cloud Kafka gestito, è possibile usarlo per replicare i dati esistenti in Hub eventi.

Configurare Kafka Mirror Maker 2

La distribuzione di Apache Kafka include connect-mirror-maker.sh script in bundle con la libreria Kafka che implementa un cluster Mirror Maker 2 distribuito. Gestisce i ruoli di lavoro Connect internamente in base a un file di configurazione. Il driver MirrorMaker internamente crea e gestisce coppie di ogni connettore: MirrorSource Connector, MirrorSink Connector, MirrorCheckpoint Connector e MirrorHeartbeat Connector.

  1. Per configurare Mirror Maker 2 per replicare i dati, è necessario aggiornare il file kafka-to-eh-connect-mirror-maker.properties di configurazione di Mirror Maker 2 per definire la topologia di replica.

  2. kafka-to-eh-connect-mirror-maker.properties Nel file di configurazione definire gli alias del cluster che si prevede di usare per il cluster Kafka (origine) e Hub eventi (destinazione).

     # cluster aliases 
     clusters = source, destination
    
  3. Specificare quindi le informazioni di connessione per l'origine, ovvero il 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. Specificare le informazioni di connessione per la destinazione, ovvero lo spazio dei nomi di Hub eventi creato.

     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. Abilitare il flusso di replica dal cluster Kafka di origine allo spazio dei nomi di Hub eventi di destinazione.

     source->destination.enabled = true
     source->destination.topics = .*
    
  6. Aggiornare il fattore di replica degli argomenti remoti e degli argomenti interni creati da Mirror Maker nella destinazione.

     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. Copiare kafka-to-eh-connect-mirror-maker.properties quindi il file di configurazione nella directory di configurazione della distribuzione Kafka ed eseguire lo script Mirror Maker 2 usando il comando seguente.

     ./bin/connect-mirror-maker.sh ./config/kafka-to-eh-connect-mirror-maker.properties
    
  8. Al termine dell'esecuzione dello script, verranno visualizzati gli argomenti e gli eventi Kafka che vengono replicati nello spazio dei nomi di Hub eventi.

  9. Per verificare che gli eventi vengano inviati a Hub eventi abilitati per Kafka, controllare le statistiche di ingresso nel portale di Azure o eseguire un consumer in Hub eventi.

Esempi

Vedere gli esempi seguenti in GitHub:

Passaggi successivi

Per altre informazioni su Hub eventi di Azure per Kafka, vedere gli articoli seguenti: