2016-06-05 16 views
0

Ist jedes Thema in Apache Kafka eine unabhängige Warteschlange oder gibt es eine einzige Warteschlange, in der alle Themen oder eine große Anzahl von Themen über eine geringere Anzahl von Warteschlangen verteilt sind?Wie werden THEMEN in Apache Kafka verwaltet

Mit anderen Worten, is 1 Topic = 1 Queue?

Oder, wie pflegt Kafka jedes Thema intern?

Antwort

3

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 
0

Thema hat Partitionen. Jede Partition ist eine Warteschlange. Elemente in jeder Partition werden in sequentieller Reihenfolge verarbeitet. Sie veröffentlichen in einem Zweig und abhängig von der Partitionslogik werden die Nachrichten auf Partitionen veröffentlicht. Standardmäßig wird die Round-Robin-Verteilung verwendet, ist jedoch konfigurierbar.

+0

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

+0

@divyesh - was meinst du mit Thema Logs, Kafka haben kein solches Konzept. Die Informationen, die ich vorgestellt habe, sind Themen – Superaghu

Verwandte Themen