2017-08-30 2 views
1

Ich entwerfe Hochdurchsatz-System, wo ich mehrere Produzenten haben werde.Beeinträchtigt die ungleiche Verteilung von Nachrichten zwischen Partitionen die Leistung des Kafka-Clusters?

Meine Themen werden partitioniert. Hersteller werden Datensätze als Schlüssel-Wert-Paare senden.

Schlüssel werden zur Partitionierung der Daten verwendet.

Die Verbraucher werden in Verbrauchergruppen organisiert (ihnen wird die gleiche Gruppen-ID zugewiesen, damit sie gleichzeitig Nachrichten desselben Themas, aber von verschiedenen Partitionen konsumieren können).

Kafka garantiert die Reihenfolge der Nachrichten innerhalb einer einzelnen Partition.

Den Verbrauchern wird ihr gerechter Anteil an Partitionen zugewiesen.

Die einzige Sache, die mir Sorgen macht, wird meine Partition Key nicht Nachrichten in der Round-Robin-Mode verteilen und einige Partitionen können belebter sein als andere.

Frage: Können ungleichmäßige Partitionen die Leistung eines Kafka-Clusters in irgendeiner Weise beeinträchtigen? Gibt es irgendwelche roten Fahnen?

Ich verstehe, dass einige Verbraucher mehr Arbeit haben werden, aber das ist nicht meine Hauptsorge. Jede Hilfe in dieser Angelegenheit wird geschätzt.

Antwort

1

Können ungleichmäßige Partitionen die Leistung eines Kafka-Clusters in irgendeiner Weise beeinträchtigen?

Jede Partition hat einen Server, der als "Leader" fungiert, und null oder mehr Server, die als "Follower" fungieren. Der Leader behandelt alle Lese- und Schreibanforderungen für die Partition, während die Follower den Leader passiv replizieren. Wenn Ihr Producer also meistens Nachrichten an eine Partition sendet, wird es dem Leiter dieser Partition sehr viel Arbeit geben. Wenn die Nachricht auf eine Partition flutet, wird der Schreibvorgang verzögert und der Knoten verlangsamt.

Gibt es rote Fahnen?

von here zitiert:

Kafka verwendet für Metriken Yammer Metriken sowohl in der Server-Reporting und dem Client. Dies kann so konfiguriert werden, dass Stats mit Hilfe von Pluggable Stats Reportern gemeldet werden, um sich mit Ihrem Überwachungssystem zu verbinden. Der einfachste Weg, die verfügbaren Metriken zu sehen, besteht darin, jconsole hochzufahren und auf einen laufenden kafka Client oder Server zu richten; Dies ermöglicht das Durchsuchen aller Metriken mit JMX.

Es gibt vielleicht einige Metriken, die dieses Verlangsamungsproblem widerspiegeln.: An dem Führungsstück

Zeit die Anforderung wartet in der Anforderungswarteschlange

Zeit der Anforderung für den Folger

Zeit verarbeitet wird die Anforderung

Zeit die Anforderung wartet in der Antwortwarteschlange wartet

2

Zur vorherigen guten Antwort Ich möchte hinzufügen, dass auch der Replikationsfaktor einen Einfluss auf Sie haben kann r Anwendungsfall.

Follower-Knoten der Busy-Partition können führende Knoten für andere Partitionen sein. Anders als beim Kopieren vieler Nachrichten von der ausgelasteten Partition müssen sie eingehende Nachrichten von Produzenten für ihre Leader-Partitionen verarbeiten. So werden selbst diese Knoten wirklich beschäftigt sein, um eine schwere Last zu bewältigen.

Verwandte Themen