Partilhar via


Replicar dados de um cluster Kafka para Hubs de Eventos usando o Apache Kafka Mirror Maker 2

Este tutorial mostra como replicar dados de um cluster Kafka existente para Hubs de Eventos do Azure usando o Mirror Maker 2.

Imagem mostrando o fluxo de eventos do Kafka MirrorMaker para Hubs de Eventos.

Nota

Este exemplo está disponível no GitHub

Neste tutorial, irá aprender a:

  • Criar um espaço de nomes dos Hubs de Eventos
  • Configurar ou usar um cluster Kafka existente
  • Configurar o Kafka Mirror Maker 2
  • Execute o Kafka Mirror Maker 2

Introdução

O Apache Kafka MirrorMaker 2.0 (MM2) foi projetado para facilitar o espelhamento ou a replicação de tópicos de um cluster Kafka para outro. O Mirror Maker usa a estrutura Kafka Connect para simplificar a configuração e o dimensionamento. Para obter informações mais detalhadas sobre o Kafka MirrorMaker, consulte o guia Kafka Mirroring/MirrorMaker.

Como os Hubs de Eventos do Azure são compatíveis com o protocolo Apache Kafka, você pode usar o Mirror Maker 2 para replicar dados entre um cluster Kafka existente e um namespace de Hubs de Eventos.

O Mirror Maker 2 deteta dinamicamente alterações nos tópicos e garante que as propriedades do tópico de origem e de destino sejam sincronizadas, incluindo deslocamentos e partições. Ele pode ser usado para replicar dados bidirecionalmente entre o cluster Kafka e o namespace dos Hubs de Eventos.

Pré-requisitos

Para concluir este tutorial, confirme que tem:

  • Leia o artigo Hubs de Eventos para o Apache Kafka.
  • Uma subscrição do Azure. Se não tiver uma, crie uma conta gratuita antes de começar.
  • Java Development Kit (JDK) 1.7+
    • No Ubuntu, execute apt-get install default-jdk para instalar o JDK.
    • Certifique-se de que define a variável de ambiente JAVA_HOME para apontar para a pasta onde está instalado o JDK.
  • Baixe e instale um arquivo binário Maven
    • No Ubuntu, pode executar apt-get install maven para instalar o Maven.
  • Git
    • No Ubuntu, pode executar sudo apt-get install git para instalar o Git.
  • Distribuição Apache Kafka
    • Faça o download da distribuição Apache Kafka preferida (que deve conter a distribuição Mirror Maker 2).

Criar um espaço de nomes dos Hubs de Eventos

É necessário um espaço de nomes dos Hubs de Eventos para enviar e receber a partir de qualquer serviços dos Hubs de Eventos. Consulte Criando um hub de eventos para obter instruções sobre como criar um namespace e um hub de eventos. Certifique-se de copiar a cadeia de conexão dos Hubs de Eventos para uso posterior.

Clonar o projeto de exemplo

Agora que você tem uma cadeia de conexão de Hubs de Eventos, clone os Hubs de Eventos do Azure para repositório Kafka e navegue até a mirror-maker-2 subpasta:

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

Configurar ou usar um cluster Kafka existente

Se você não tiver um cluster Kafka existente, use o guia de início rápido Kafka para configurar um cluster Kafka com as configurações desejadas (ou use um cluster Kafka existente). Para fins de teste, você também pode criar alguns tópicos no cluster Kafka recém-criado e publicar dados neles.

Se você já tiver um cluster Kafka existente no local ou em um serviço de nuvem Kafka gerenciado, poderá usá-lo para replicar dados existentes para Hubs de Eventos.

Configurar o Kafka Mirror Maker 2

A distribuição Apache Kafka vem com connect-mirror-maker.sh script que é empacotado com a biblioteca Kafka que implementa um cluster distribuído do Mirror Maker 2. Ele gerencia os trabalhadores do Connect internamente com base em um arquivo de configuração. Internamente, o driver do MirrorMaker cria e lida com pares de cada conector – MirrorSource Connector, MirrorSink Connector, MirrorCheckpoint Connector e MirrorHeartbeat Connector.

  1. Para configurar o Mirror Maker 2 para replicar dados, você precisa atualizar o arquivo kafka-to-eh-connect-mirror-maker.properties de configuração do Mirror Maker 2 para definir a topologia de replicação.

  2. kafka-to-eh-connect-mirror-maker.properties No arquivo de configuração, defina aliases de cluster que você planeja usar para seu cluster Kafka (origem) e Hubs de Eventos (destino).

     # cluster aliases 
     clusters = source, destination
    
  3. Em seguida, especifique as informações de conexão para sua fonte, que é seu 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. Especifique as informações de conexão para o destino, que é o namespace dos Hubs de Eventos que você criou.

     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. Habilite o fluxo de replicação do cluster Kafka de origem para o namespace Hubs de Eventos de destino.

     source->destination.enabled = true
     source->destination.topics = .*
    
  6. Atualize o fator de replicação dos tópicos remotos e internos que o Mirror Maker cria no destino.

     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. Em seguida, você copia kafka-to-eh-connect-mirror-maker.properties o arquivo de configuração para o diretório de configuração da distribuição Kafka e pode executar o script do Mirror Maker 2 usando o seguinte comando.

     ./bin/connect-mirror-maker.sh ./config/kafka-to-eh-connect-mirror-maker.properties
    
  8. Após a execução bem-sucedida do script, você verá os tópicos e eventos do Kafka sendo replicados para seu namespace de Hubs de Eventos.

  9. Para verificar se os eventos estão chegando aos Hubs de Eventos habilitados para Kafka, confira as estatísticas de entrada no portal do Azure ou execute um consumidor nos Hubs de Eventos.

Exemplos

Veja os seguintes exemplos no GitHub:

Próximos passos

Para saber mais sobre os Hubs de Eventos para Kafka, consulte os seguintes artigos: