0

Ich erstelle eine Kafka-Datenpipeline mit 3 Kafka Broker und 3 Tierpfleger, also muss ich 6 Maschinen verwenden, 3 Broker und 3 zoekepers zu implementieren . Es gibt zwei Möglichkeiten keine/MaschinenWas sind die Vor- und Nachteile der Schaffung Kafka Broker und Tierpfleger in zwei Docker Container in der gleichen Maschine

zu reduzieren

1) 1 kafka Broker zu halten und 1 zookeeper in derselben physischen Maschine ich in Web durchsucht und in Quoren fand, dass es Latenzprobleme, da beide kafkas Broker sein und Zoowärter benutzen den gleichen RAM. 0) Verwenden von docker und Erstellen zweier container in einer Maschine für zookeeper und broker und Begrenzen des RAM des zoekeeper-Containers, so dass mehr RAM vom kafka-Broker belegt wird und die Latenz reduziert wird

Ich möchte mehr Vor-und Nachteile meiner beiden Anwendungsfälle

wissen 10

Ist es eine gute Praxis sowohl zookeeper und Broker in derselben Maschine Container

Vielen Dank im Voraus mit halten

Antwort

2

Ein sehr unterschiedliches Merkmal von Kafka ist, dass es sequenzielles Lesen/Schreiben auf der Festplatte nutzt, um sein hohes Leistungsniveau zu erreichen. Wenn eine andere Anwendung aktiv die gleiche physische Festplatte verwendet (wie z. B. zookeeper, da sie ein Änderungsprotokoll verwaltet), wird der maximale Durchsatz, den Sie aus kafka herausholen können, gesenkt.

Dies schließt jedoch nicht die gemeinsame Nutzung eines Servers aus, und wie gesagt wurde, ist ZK ein insgesamt sehr leichter Dienst in Bezug auf die verwendeten Ressourcen. Es schließt nur die gemeinsame Nutzung eines Laufwerks aus, wenn Sie ein hohes Leistungsniveau benötigen (Hunderte von Mega Daten pro Sekunde aus jedem Broker).

Sie möchten vielleicht auch in Betracht ziehen, dass Sie hier Fehlerursachen vergemeinschaften, was normalerweise nicht optimal ist, wenn Sie es vermeiden können. Es kann ein akzeptabler Kompromiss sein, wenn Sie nicht die Möglichkeit haben, 3 sehr kleine Maschinen für ZK zu nutzen/mieten, sondern an einem gegebenen Bestand an Servern arbeiten.

0

Wenn Sie nur Zookeeper für Kafka und keine anderen Prozesse verwenden/Anwendung verwendet, dass Zookeeper Cluster, dann wird Zookeeper sehr wenig Speicher verbrauchen. Kafka speichert auch nicht viele Daten im Speicher. So ist es für Sie sicher, einen Kafka- und einen Zookeeper-Knoten auf demselben Computer zu betreiben. Sie können den Zookeeper darauf beschränken, weniger Speicher zu verwenden, indem Sie den maximalen JVM-Heapspeicher steuern. Wenn der nutzbare Speicher für den Betriebssystem-Cache geringer ist, kann sich die Kafka-Leistung auswirken. Da der Zookeeper nicht viel Speicher verwendet, können Sie dies ignorieren.