2014-11-26 11 views

Antwort

8

Wenn Sie dem Thema die Nachricht hinzufügen, rufen Sie die Methode send (KeyedMessage-Nachricht) der Producer-API auf. Dies bedeutet, dass Ihre Nachricht Schlüssel und Wert enthält. Wenn Sie ein Thema erstellen, geben Sie die Anzahl der Partitionen an, die es haben soll. Wenn Sie die Methode "send" für dieses Thema aufrufen, werden die Daten basierend auf dem Hash-Wert Ihres Schlüssels (standardmäßig) an nur EINE bestimmte Partition gesendet. Jede Partition kann ein Replikat haben, was bedeutet, dass beide Partitionen und ihre Replikate dieselben Daten speichern. Die Einschränkung besteht darin, dass sowohl Ihr Producer als auch der Consumer nur mit dem Haupt-Replikat arbeiten und seine Kopien nur für Redundanz verwendet werden.

finden Sie in der Dokumentation: http://kafka.apache.org/documentation.html#producerapi Und eine Grundausbildung: http://www.slideshare.net/miguno/apache-kafka-08-basic-training-verisign

+0

Bekam es .. vielen Dank !! –

4

Themen sind über mehrere Knoten unterteilt, um ein Thema über die Grenzen eines Knotens wachsen kann. Partitionen werden zur Fehlertoleranz repliziert. Replikation und Führerübernahme ist einer der größten Unterschiede zwischen Kafka und anderen Brokern/Flume. Von den Apache Kafka site:

Jede Partition hat einen Server, der als „Leader“ fungiert und null oder mehr Server, die als „Anhänger“ handeln. Der Anführer behandelt alle Lese- und Schreibanforderungen für die Partition, während die Follower passiv den Anführer replizieren. Wenn der Anführer versagt, wird einer der Anführer automatisch zum neuen Anführer . Jeder Server fungiert als Vorreiter für einige seiner Partitionen und einen Nachfolger für andere, so dass Last innerhalb des Clusters ausgeglichen ist.

+0

Danke .. sehr schöne Erklärung ... –

4

Zwei weitere wichtige Eigenschaften von Kafka sind Parallelität und Redundanz. Kafka behandelt dies, indem es jedem Thema eine bestimmte Anzahl von Partitionen und Replikaten gibt.

Partitionen

Partitionen: Ein einzelnes Stück eines Kafka Thema. Die Anzahl der Partitionen ist pro Thema konfigurierbar. Mehr Partitionen ermöglichen eine große Parallelität beim Lesen der Themen. Die Anzahl der Partitionen bestimmt, wie viele Konsumenten Sie in einer Verbrauchergruppe haben. Wenn ein Thema beispielsweise drei Partitionen hat, können Sie drei Konsumenten in einer Konsumentengruppe zwischen den Partitionen balancieren lassen. Auf diese Weise haben Sie eine Parallelität von 3. Diese Partition Nummer ist etwas schwer zu bestimmen, bis Sie wissen, wie schnell Sie Daten produzieren und wie schnell Sie die Daten verbrauchen. Wenn Sie ein Thema haben, von dem Sie wissen, dass es sehr umfangreich sein wird, müssen Sie mehr Partitionen haben.

Replicas

Replicas: Dies sind Kopien der Partitionen. Sie werden niemals geschrieben oder gelesen. Ihr einziger Zweck ist die Datenredundanz. Wenn Ihr Thema über Replikate verfügt, können n-1-Broker fehlschlagen, bevor Daten verloren gehen. Darüber hinaus können Sie kein Thema einen Replikationsfaktor größer als die Anzahl der Broker haben, die Sie haben. Zum Beispiel haben Sie 5 Kafka-Broker, Sie könnten ein Thema mit einem maximalen Replikationsfaktor von 5 haben, und 5-1 = 4 Broker könnten untergehen, bevor es Datenverluste gibt.