Replicar dados para um cluster secundário

Concluído

O Kafka é frequentemente implantado em vários ambientes para recuperação de desastres, alta disponibilidade e cenários híbridos de nuvem no local. Esses cenários exigem a replicação dos dados de uma instância do Kafka para a outra usando o recurso de espelhamento do Apache Kafka. O espelhamento pode ser executado como um processo contínuo ou usado intermitentemente como um método de migração de dados de um cluster para outro.

O espelhamento não deve ser considerado um meio para alcançar a tolerância a falhas. O deslocamento para itens dentro de um tópico é diferente entre os clusters primário e secundário, portanto, os clientes não podem usar os dois de forma intercambiável.

Como funciona o espelhamento?

O espelhamento funciona usando a ferramenta MirrorMaker (parte do Apache Kafka) para consumir registros de tópicos no cluster primário e, em seguida, criar uma cópia local no cluster secundário. O MirrorMaker usa um ou mais consumidores que leem do cluster primário e um produtor que grava no cluster secundário local.

A configuração de espelhamento mais útil para recuperação de desastres utiliza clusters Kafka em diferentes regiões do Azure. Para conseguir isso, as redes virtuais onde os clusters residem são emparelhadas juntas.

O diagrama a seguir ilustra o processo de espelhamento e como a comunicação flui entre clusters:

Espelhando a arquitetura do Apache Kafka

Os clusters primário e secundário podem ser diferentes no número de nós e partições, e os deslocamentos dentro dos tópicos também são diferentes. O espelhamento mantém o valor da chave usada para particionamento, portanto, a ordem dos registros é preservada por chave.

Espelhamento através dos limites da rede

Se você precisar espelhar entre clusters Kafka em redes diferentes, há as seguintes considerações adicionais:

  • Gateways: As redes devem ser capazes de se comunicar no nível TCP/IP.
  • Endereçamento do servidor: você pode optar por endereçar os nós do cluster usando seus endereços IP ou nomes de domínio totalmente qualificados.
    • Endereços IP: Se você configurar seus clusters Kafka para usar publicidade de endereço IP, poderá prosseguir com a configuração de espelhamento usando os endereços IP dos nós do broker e dos nós do zookeeper.
    • Nomes de domínio: Se você não configurar seus clusters Kafka para publicidade de endereços IP, os clusters deverão ser capazes de se conectar uns aos outros usando FQDNs (Nomes de Domínio Totalmente Qualificados). Isso requer um servidor DNS (Sistema de Nomes de Domínio) em cada rede configurado para encaminhar solicitações para as outras redes. Ao criar uma Rede Virtual do Azure, em vez de usar o DNS automático fornecido com a rede, você deve especificar um servidor DNS personalizado e o endereço IP do servidor. Depois que a Rede Virtual tiver sido criada, você deve criar uma Máquina Virtual do Azure que use esse endereço IP e, em seguida, instalar e configurar o software DNS nela.

Aviso

Crie e configure o servidor DNS personalizado antes de instalar o HDInsight na Rede Virtual. Não há nenhuma configuração adicional necessária para que o HDInsight use o servidor DNS configurado para a Rede Virtual.