Gegevens repliceren naar een secundair cluster

Voltooid

Kafka wordt vaak geïmplementeerd in meerdere omgevingen voor herstel na noodgevallen, hoge beschikbaarheid en on-premises voor hybride cloudscenario's. Voor deze scenario's is replicatie van de gegevens van het ene Kafka-exemplaar naar de andere vereist met behulp van de functie voor spiegeling van Apache Kafka. Spiegeling kan worden uitgevoerd als een continu proces of af en toe worden gebruikt als een methode voor het migreren van gegevens van het ene cluster naar het andere.

Spiegeling moet niet worden beschouwd als een middel om fouttolerantie te bereiken. De verschuiving naar items in een onderwerp verschilt tussen de primaire en secundaire clusters, zodat clients de twee niet door elkaar kunnen gebruiken.

Hoe werkt spiegeling?

Spiegelen werkt met behulp van het hulpprogramma MirrorMaker (onderdeel van Apache Kafka) om records te gebruiken uit onderwerpen op het primaire cluster en maak vervolgens een lokale kopie op het secundaire cluster. MirrorMaker maakt gebruik van een of meer consumenten die lezen uit het primaire cluster en een producent die naar het lokale secundaire cluster schrijft.

De handigste mirroring-installatie voor herstel na noodgevallen maakt gebruik van Kafka-clusters in verschillende Azure-regio's. Om dit te bereiken, worden de virtuele netwerken waarin de clusters zich bevinden, gekoppeld aan elkaar.

In het volgende diagram ziet u het spiegelingsproces en hoe de communicatie tussen clusters stroomt:

Mirroring Apache Kafka architecture

De primaire en secundaire clusters kunnen verschillen in het aantal knooppunten en partities en offsets binnen de onderwerpen zijn ook verschillend. Met spiegeling wordt de sleutelwaarde bijgehouden die wordt gebruikt voor partitionering, zodat de recordvolgorde per sleutel behouden blijft.

Spiegelen over netwerkgrenzen

Als u moet spiegelen tussen Kafka-clusters in verschillende netwerken, zijn er de volgende aanvullende overwegingen:

  • Gateways: De netwerken moeten kunnen communiceren op TCP/IP-niveau.
  • Serveradressering: u kunt ervoor kiezen om uw clusterknooppunten te adresseren met behulp van hun IP-adressen of volledig gekwalificeerde domeinnamen.
    • IP-adressen: Als u uw Kafka-clusters configureert voor het gebruik van IP-adresadvertenties, kunt u doorgaan met de instellingen voor spiegelen met behulp van de IP-adressen van de brokerknooppunten en zookeeper-knooppunten.
    • Domeinnamen: Als u uw Kafka-clusters niet configureert voor IP-adresadvertenties, moeten de clusters verbinding met elkaar kunnen maken met behulp van FQDN's (Fully Qualified Domain Names). Hiervoor is een DNS-server (Domain Name System) vereist in elk netwerk dat is geconfigureerd voor het doorsturen van aanvragen naar de andere netwerken. Wanneer u een virtueel Azure-netwerk maakt, moet u in plaats van de automatische DNS die bij het netwerk wordt geleverd, een aangepaste DNS-server en het IP-adres voor de server opgeven. Nadat het virtuele netwerk is gemaakt, moet u vervolgens een virtuele Azure-machine maken die dat IP-adres gebruikt en vervolgens DNS-software erop installeren en configureren.

Waarschuwing

Maak en configureer de aangepaste DNS-server voordat u HDInsight in het virtuele netwerk installeert. Er is geen aanvullende configuratie vereist voor HDInsight om de DNS-server te gebruiken die is geconfigureerd voor het virtuele netwerk.