2016-11-15 4 views
0

У меня есть KafkaProducer, который внезапно начал бросать TimeoutExceptions при попытке отправить сообщение. Несмотря на то, что я установил свойство max.block.ms на 60000 мс, а тестовые блоки на 60 секунд, сообщение об ошибке, которое я получаю, всегда имеет время менее 200 мс. Единственный раз, когда он на самом деле показывает 60000 мс, - это запустить его в режиме отладки и выполнить метод waitOnMetadata вручную. ПримерApache KafkaProducer throwing TimeoutException при отправке сообщения

ошибка:
org.apache.kafka.common.errors.TimeoutException: Failed to update metadata after 101 ms.

Кто-нибудь знает, почему она вдруг не сможет обновить метаданные? Я знаю, что это не моя реализация производителя, которая является неисправной, так как я не только не менял ее с тех пор, как она работала, если я запускаю свои тесты на другом сервере, который все они проходят. Какие причины на стороне сервера могут быть для этого? Должен ли я перезапустить своих брокеров? И почему сообщение с таймаутом покажет неправильное время, если я просто позволю ему запустить?

установка Производитель:

val props = new Properties() 
props.put("bootstrap.servers", getBootstrapServersFor(datacenter.mesosLocal)) 
props.put("batch.size","0") 
props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer") 
props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer") 
props.put("max.block.ms","60000") 
new KafkaProducer[String,String](props) 
+0

Являются ли машины хостингом брокеров в средах IaaS? Если это так, вам лучше настроить config рекламируемого.host.name и подключиться к ним клиентом. – amethystic

+0

Если бы я не задал значение раньше, когда он работал, и я не задал значение на других моих серверах, где он работает, почему его настройка теперь поможет? – annedroiid

+1

Вы пробовали работать с kafka-console-продюсером? –

ответ

1

Я пытался использовать производитель консоли, чтобы увидеть, если я могу отправлять сообщения, и я получил много WARN Error while fetching metadata with correlation id 0 : {metadata-1=LEADER_NOT_AVAILABLE} (org.apache.kafka.clients.NetworkClient) сообщений обратно. После остановки и перезапуска брокера я смог отправить и снова использовать сообщения.

Смежные вопросы