Ich benutzte kafka-storm, um kafka und storm zu verbinden. Ich habe 3 Server mit Tierpfleger, Kafka und Sturm. Es gibt ein Thema "Test" in Kafka, das 9 Partitionen hat.Storm latency verursacht durch ack
In der Sturmtopologie ist die Anzahl der KafkaSpout-Executoren 9 und die Anzahl der Aufgaben sollte standardmäßig ebenfalls 9 sein. Und der "Auszug" -Bolzen ist der einzige Bolzen, der mit KafkaSpout, dem "Log" -Auslauf, verbunden ist.
Von der Benutzeroberfläche gibt es eine große Rate von Fehlern in der Tülle. Allerdings ist die Anzahl der ausgeführten Nachricht in bolt = die Anzahl der ausgegebenen Nachricht - die Anzahl der fehlgeschlagenen Nachricht in bolt. Diese Gleichung ist nahezu identisch, wenn die fehlgeschlagene Nachricht zu Beginn leer ist.
Nach meinem Verständnis bedeutet dies, dass der Bolzen die Nachricht von der Tülle erhalten hat, aber die Ack-Signale im Flug ausgesetzt sind. Das ist der Grund, warum die Anzahl der Aids im Auslauf so gering ist.
Dieses Problem kann möglicherweise gelöst werden, indem Sie die Anzahl der Zeitüberschreitungen und die Anzahl der ausstehenden Nachrichten erhöhen. Aber dies wird mehr Speicherverbrauch verursachen und ich kann es nicht auf unendlich erhöhen.
Ich war herumwandern, wenn es eine Möglichkeit gibt, Sturm zu zwingen, die Ack in irgendeiner Tülle/Bolzen zu ignorieren, so dass es auf dieses Signal bis zum Zeitlimit nicht warten wird. Dies sollte die Durchlaufzeit deutlich erhöhen, aber keine Garantie für die Nachrichtenverarbeitung darstellen.
Vielen Dank für Ihre Ratschläge. Ich habe dieses Problem behoben, indem ich die "topology.max.spout.pending" auf 2000 beschränkt habe. –