2016-06-03 24 views
6

Mam środowisko kafka, które ma 3 brokers i 1 zookeeper. Przesłałem około 20K wiadomość w moim temacie. Apache Storm oblicza dane w temacie dodanym przez producenta.Producent Kafki nie jest w stanie aktualizować metadanych po pewnym czasie.

Po minęło kilka godzin, podczas gdy ja staram się produkować wiadomości do Kafki, jego pokazując następujący wyjątek

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

Po ponownym uruchomieniu serwerów Kafka jego pracy grzywny. ale na production nie mogę ponownie uruchomić serwera za każdym razem. , więc może ktoś mi pomóc, aby dowiedzieć się mój problem.

moja konfiguracja Kafka są następujące:

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

Czy zaglądałeś do dzienników serwera kafka i zobaczyłeś coś? –

+0

Nie mogę pomóc w Storm, ale z Flink mieliśmy problemy, że Flink miał co 10 ms zsynchronizowany z Broker Kafka i wyprodukował BARDZO wysokie obciążenie na temat tematu __consumer_offset, więc nic nie działało dobrze. Sprawdź dzienniki i sprawdź za pomocą narzędzi monitorujących, jakie obciążenie masz po stronie brokera. I BTW - sigle instance zookeeper to bardzo zły pomysł (TM) - potrzebujesz co najmniej 3 dla systemu produkcyjnego. –

Odpowiedz

0

Chociaż Kafka producent strojenie jest dość trudny temat, mogę sobie wyobrazić, że producent próbuje wygenerować rejestrów szybciej niż można to przenieść do klastra Kafki.

Dostępne jest ustawienie producenta buffer.memory, które określa, ile producenta pamięci może wykorzystać przed blokowaniem. Domyślna wartość to 33554432 (33 MB).

Zwiększenie pamięci producenta pozwoli uniknąć blokowania. Wypróbuj różne wartości, na przykład 100 MB.