In Kafka ist jedes Thema ein einzelnes und logisch verteiltes Commit-Protokoll (d. H. Eine Append-Only-Datei).
Jedes Thema ist in eine Anzahl von Partitionen aufgeteilt, die über Ihren Cluster verteilt sind. Die Anzahl der Partitionen kann dynamisch erhöht werden.
Eine Partition ist physisch im Dateisystem gespeichert. Eine Partition muss vollständig in einen Broker (eine Maschine in einem Kafka-Cluster) passen.
Darüber hinaus können Sie mehrere Partitionen desselben Themas auf einem Broker haben.
Dann Partitionen sind themselve in eine Anzahl von Segment-Dateien aufgeteilt (ein Segment Standard hat eine Größe von 1 GB)
Um dies zu veranschaulichen, können Sie ein Thema als Gebrüll erstellen:
Ein neues Thema erstellen 'test'
$ > ./kafka-topics --create --topic test --replication-factor 1 --partitions 3 --zookeeper localhost:2181
Created topic "test".
Liste kafka Partitionen (ein Ordner pro Partition)
$ > ls /tmp/kafka-logs | grep test
test-0
test-1
test-2
Liste Segmentdateien für jede Partition
$ > ls -sh /tmp/kafka-logs/test*
/tmp/kafka-logs/test-0:
total 0
0 00000000000000000000.index 0 00000000000000000000.log
/tmp/kafka-logs/test-1:
total 4,0K
0 00000000000000000000.index 4,0K 00000000000000000000.log
/tmp/kafka-logs/test-2:
total 4,0K
0 00000000000000000000.index 4,0K 00000000000000000000.log
Ich denke, das ist, wie das Thema Protokolle konfiguriert sind, nicht das Thema selbst. Könnten Sie das bitte noch einmal überprüfen? @superaghu – divyesh
@divyesh - was meinst du mit Thema Logs, Kafka haben kein solches Konzept. Die Informationen, die ich vorgestellt habe, sind Themen – Superaghu