Я новичок в Kafka 0.9 и тестирую некоторые функции, которые я понял странным поведением в реализованной Java-потребителе (KafkaConsumer
).Метод poll опроса Kafka Consumer заблокирован
Брокер Kafka находится в Ambari внешняя машина.
Даже я могу реализовать Продюсера и начать отправлять сообщения внешнему брокеру, я не знаю, почему, когда потребитель пытается прочитать события (опрос), он застревает.
Я знаю, что производитель работает хорошо, так как я могу потреблять сообщения через консольного потребителя (который работает локально на ambari). Но когда я выполняю Java-потребитель, ничего не происходит, просто застревает. Отладка кода я мог видеть, что он будет заблокирован на poll()
линии:
ConsumerRecords<String, String> records = consumer.poll(100);
Таймаут ничего не делает, кстати. Неважно, если вы ставите 0, 100 или 1000 мс, потребитель блокируется в этой строке и не выполняет тайм-аут и не исключает исключения.
Я попробовал все виды альтернативных свойств, таких как advertised.host.name, advertised.listener ... и так далее, с нулевой удачи.
Любая помощь будет высоко оценена. Заранее спасибо!
Можете ли вы использовать сообщения по-другому, например, используя 'kafka-console-consumer.sh'? –
Да, я. Из машины, на которой размещается амбари, я могу потреблять сообщения через консольного пользователя –
А как насчет машины, на которой вы запускаете своего потребителя? Вы попробовали консольный потребитель? –