it-swarm.com.de

Sichern/Wiederherstellen von Kafka und Tierpfleger

Ich verwende einen einfachen 3-Knoten von kafka und 5-Knoten von zookeeper, um die kafka auszuführen. Ich würde gerne wissen, welche Art der Sicherung meiner kafka die gleiche ist wie für meine zookeeper.

Momentan exportiere ich einfach mein Datenverzeichnis in einen S3-Bucket ...

Vielen Dank.

8
starttter

Zalando hat kürzlich einen ziemlich guten Artikel wie man Kafka und Zookeeper sichert veröffentlicht. Im Allgemeinen gibt es zwei Pfade für die Kafka-Sicherung:

  • Verwalten Sie den zweiten Kafka-Cluster, auf den alle Themen repliziert werden. Ich habe dieses Setup nicht überprüft, aber wenn auch Versatzthemen repliziert werden, sollte das Wechseln zu einem anderen Cluster den Verarbeitungsstatus der Verbraucher nicht beeinträchtigen.
  • Dump-Themen auf Cloud-Speicher, z. mit S3-Stecker (wie von Zalando beschrieben). Im Falle einer Wiederherstellung erstellen Sie Themen neu und füttern sie mit Daten aus Ihrem Cloud-Speicher. Auf diese Weise können Sie die Wiederherstellung zu einem bestimmten Zeitpunkt durchführen, aber die Verbraucher müssten von Anfang an mit dem Lesen des Themas beginnen.

Die bevorzugte Sicherungslösung hängt von Ihrem Anwendungsfall ab. Z.B. Für Streaming-Anwendungen kann die erste Lösung weniger Schmerzen verursachen, während bei der Verwendung von Kafka für die Ereignisbeschaffung die zweite Lösung möglicherweise wünschenswerter ist.

In Bezug auf Zookeeper hält Kafka dort Informationen zu Themen (persistenten Shop) sowie zu Broker Discovery und Leader Wahl (ephemeral). Zalando entschied sich für die Verwendung von Burry , die einfach über die Zookeeper-Baumstruktur durchläuft, sie in die Dateistruktur lädt, um sie später zu komprimieren und in den Cloud-Speicher zu verschieben. Es leidet an ein kleines Problem , aber höchstwahrscheinlich hat es keine Auswirkungen auf die Sicherung der persistenten Daten von Kafka (TODO Verify). Zalando beschreibt dort, dass es besser ist, beim Wiederherstellen einen Zookeeper-Cluster zu erstellen, dann einen neuen Kafka-Cluster (mit neuen, eindeutigen Broker-IDs) daran anzuschließen und anschließend das Backup von Burry wiederherzustellen. Burry überschreibt keine vorhandenen Knoten und gibt keine kurzlebigen Informationen zu alten Brokern ab, die im Backup gespeichert werden.

Hinweis: Obwohl die Verwendung des Ausstellers erwähnt wird, ist er für die Sicherung bei der Sicherung mit Burry nicht wirklich erforderlich.

7
krzychu

Apache Kafka hält Ihre Daten bereits verteilt und bietet auch starke konsistente Replikations Fähigkeiten. 

Aus Sicht des Architekturdesigns müssen wir zuerst verstehen, was ein Backup für uns bedeutet.

  • ist es, um einen Ausfall eines Rechenzentrums zu überleben?

    Wie Sie in dem Kommentar sagten, stellen Sie sich den Fall vor, wenn Ihr gesamtes Rechenzentrum ausgefallen ist. Dies bedeutet, dass alles, was in diesem Rechenzentrum läuft, weg ist, nicht nur das Kafka. Um mit solchen Fehlern umgehen zu können, müssen Sie eine Echtzeit-Replikationsstrategie für ein anderes Rechenzentrum entwerfen. Sie können dazu kafka-mirror maker verwenden. Sie müssen einen Kafka-Cluster in einem anderen Rechenzentrum einrichten (nicht notwendigerweise mit den gleichen Hardware-Ressourcen) und dann Ihr aktuelles Rechenzentrum Kafka so konfigurieren, dass es in diesem anderen Rechenzentrum gespiegelt wird.

Bei einem Ausfall im gesamten Rechenzentrum werden alle Ihre Dienste von diesem Fallback-Rechenzentrum ausgeführt und verwenden Ihr gespiegeltes Kafka als primäres Kafka.

Sobald das andere Rechenzentrum zurückgekehrt ist, können Sie den Spiegel in umgekehrter Reihenfolge einrichten und zu Ihrem alten (zerstörten) Rechenzentrum gelangen.

  • werden nur die Daten von Kafka/Zookeeper gesichert?

Kafka connect verfügt über ein paar out-of-the-box-Konnektoren für den Datentransfer von kafka mit Konsistenzgarantie. Sie können also AWS S3 als Sicherungsspeicher wählen und der folgende Connector kann dies für Sie tun.

  • Confluent AWS S3-Anschluss.
  • Pinterest hat einen Secor-Service , der Daten an AWS S3, Google & Mircosoft Cloud-Speicher überträgt ..__ Ich bin sicher, dass Sie auch einige dedizierte Anschlüsse für alle großen Cloud-Anbieter finden können. Bei der Sicherung der Kafka-Daten in einem hoch verfügbaren Cloud-Speicher sind nur wenige Dinge zu beachten.

  • kafka hat für jedes Thema eine Richtlinie zur Datenaufbewahrung. Die alten Daten werden daher von Kafka selbst von den Kafka-Servern entfernt. Die Daten bleiben jedoch in Ihrem AWS S3-Bucket. Wenn Sie sie also im Falle eines Zurückschreibungsereignisses direkt zurückkopieren, werden Sie dies Es werden viel mehr Daten zu Kafka-Brokern angezeigt, und es ist auch nicht ratsam, die gesamten Daten in einem vorhandenen Kafka-Cluster wiederherzustellen, da Sie dann mit der Verarbeitung alter Daten beginnen werden. Seien Sie also selektiv und vorsichtig in diesem Prozess

  • Bei zookeeper können Sie die Daten auch nach AWS S3 kopieren. Aufgrund der kurzlebigen Knoten müssen Sie jedoch beim Wiederherstellen vorsichtig sein. Ich habe einige Links gefunden, die helfen können:

https://jobs.zalando.com/tech/blog/backing-up-kafka-zookeeper/https://www.elastic.co/blog/zookeeper-backup-a-treatisehttps://medium.com/@Pinterest_Engineering/zookeeper-resilience-at-pinterest-adfd8acf2a6b

Am Ende "Vorbeugen ist besser als heilen". Wenn Sie also in einem Cloud-Provider-Setup wie AWS arbeiten, können Sie das Cluster-Setup bereitstellen, indem Sie die Fehler im Auge behalten. Unter dem Link finden Sie einige Informationen.

https://aws.Amazon.com/blogs/big-data/best-practices-for-running-Apache-kafka-on-aws/

2
Peeyush