Ich habe einen Kafka Cluster mit zwei Knoten und sechs Partitionen mit einem Replikationsfaktor von 2 auf AWS konfiguriert. Jeder Kafka-Knoten läuft auf einer m4.2xlarge EC2-Instanz, die von einem EBS unterstützt wird.Einschränkungen für Kafka Producer und Broker Throughput
Ich verstehe, dass die Geschwindigkeit des Datenflusses vom Kafka-Produzent zum Kafka-Broker durch die Netzwerkbandbreite des Herstellers begrenzt ist.
Nehmen wir an, die Netzwerkbandbreite zwischen Kafka Producer und Broker beträgt 1 Gbps (ca. 125 MB/s) und die Bandbreite zwischen Kafka Broker und Storage (zwischen EC2 Instanz und EBS Volume) beträgt 1 Gbps.
Ich habe das Tool org.apache.kafka.tools.ProducerPerformance zum Profiling der Leistung verwendet.
beobachtete ich, dass ein einzelner Produzent 90 bei etwa MB/s an den Broker schreiben kann, wenn eine Nachrichtengröße von 100 Byte.
(daher ist Netzwerk nicht gesättigt) Volumenich auch beobachtet, dass die Plattenschreibrate EBS ist ungefähr 120 MB/s.
Sind dies 90 MB/s aufgrund eines Netzwerkengpasses oder ist es eine Einschränkung von Kafka? (Vergessen Sie die Batch-Größe und Komprimierung usw. zur Vereinfachung)
Könnte dies an der Bandbreitenbeschränkung zwischen Broker und ebs-Volume liegen?
Ich habe auch beobachtet, dass, wenn zwei Hersteller (von zwei separaten Maschinen) Daten produzieren, der Durchsatz eines Herstellers auf etwa 60 MB/s gesunken ist.
Was könnte der Grund dafür sein? Warum erreicht dieser Wert nicht 90 MB/s? Könnte das an dem Netzwerk-Engpass zwischen Broker und ebs Volume liegen?
Was mich verwirrt, ist, dass in beiden Fällen (Einzelproduzent und zwei Produzenten) die Plattenschreibrate auf ebs bei etwa 120 MB/s bleibt (näher an der oberen Grenze).
Danke