2016-06-03 16 views
6

Ich habe eine Kafka-Umgebung, die 3 brokers und 1 zookeeper hat. Ich hatte in meinem Thema> 20K Nachricht gedrängt. Apache Storm berechnet die Daten in einem Thema, das vom Produzenten hinzugefügt wird.Kafka Produzent ist nicht in der Lage, Metadaten nach einiger Zeit zu aktualisieren

Nach einigen Stunden, während ich Nachrichten an kafka zu erzeugen versuchen, sein zeigen die folgende Ausnahme

org.apache.kafka.common.errors.TimeoutException: Failed to update metadata after 60000 ms. 

Nach dem kafka Server seine adaequat neu zu starten. aber unter production kann ich meinen Server nicht jedes Mal neu starten. also kann mir jeder helfen, mein Problem herauszufinden.

meine kafka Konfiguration sind wie folgt:

prodProperties.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG,"list of broker"); 
prodProperties.put(ProducerConfig.ACKS_CONFIG, "1"); 
prodProperties.put(ProducerConfig.RETRIES_CONFIG, "3"); 
prodProperties.put(ProducerConfig.LINGER_MS_CONFIG, 5); 
+2

Haben Sie in den Protokollen des Kafka-Servers gesucht und etwas gesehen? –

+0

Ich kann nicht mit Sturm helfen, aber mit Flink wir Probleme hatten, dass Flink alle 10 ms synchronisiert mit Kafka Broker hatte und eine sehr hohe Belastung __consumer_offset Thema produziert, so gut nichts funktionierte. Überprüfen Sie Protokolle und überprüfen Sie mit Überwachungs-Tools, welche Last Sie auf der Brokerseite haben. Und BTW - Sigle Instanz von Tierpfleger ist sehr schlecht Idee (TM) - Sie benötigen mindestens 3 für das Produktionssystem. –

Antwort

0

Obwohl Kafka Produzent Stimmung ziemlich hart Thema ist, kann ich mir vorstellen, dass Ihr Produzent versucht, Aufzeichnungen zu erzeugen, schneller als es zu einem Kafka-Cluster zu übertragen.

Es gibt eine Producer-Einstellung buffer.memory, die definiert, wie viel Speicherhersteller vor dem Blockieren verwenden kann. Der Standardwert ist 33554432 (33 MB).

Wenn Sie den Speicher des Produzenten erhöhen, vermeiden Sie Blockierungen. Probieren Sie andere Werte aus, z. B. 100 MB.