1

Я уже начал изучать Кафку. Попытка основных операций над ним. Я задумался над тем, что касается «брокеров».NoBrokersAvailable: NoBrokersAvailable-Kafka Error

Моя кафка работает, но когда я хочу создать раздел.

from kafka import TopicPartition 
(ERROR THERE) consumer = KafkaConsumer(bootstrap_servers='localhost:1234') 
consumer.assign([TopicPartition('foobar', 2)]) 
msg = next(consumer) 

отслеживающий (самый последний вызов последнего): Файл "", строка 1, в Файл «/usr/local/lib/python2.7/dist-packages/kafka/consumer/group. py ", строка 284, в init self._client = KafkaClient (метрики = self._metrics, ** self.config) Файл" /usr/local/lib/python2.7/dist-packages/kafka/client_async .py ", строка 202, в init self.config ['api_version'] = self.check_version (timeout = check_timeout) Файл« /usr/local/lib/python2.7/dist-packages/ Кафка/client_async.py», строка 791, в check_version повышают Errors.NoBrokersAvailable() kafka.errors.NoBrokersAvailable: NoBrokersAvailable

+0

Шаги по созданию трубопровода данных Кафки. Перейдите по ссылке ниже. https://stackoverflow.com/questions/35689238/kafka-python-producer-is-not-able-to-connect/49212019#49212019 – user2468325

ответ

1

Похоже, что вы хотите, чтобы начать потребляющих сообщения вместо создания partions. Тем не менее - можете ли вы добраться до кафки в порту 1234? 9092 - порт по умолчанию kafkas, возможно, вы можете попробовать это. Если вы нашли нужный порт, но приложение по-прежнему вызывают ошибки, вы можете попробовать использовать консоль потребитель, чтобы проверить свои настройки:

bin/kafka-console-producer.sh --broker-list localhost:<yourportnumber> --topic foobar

Консоли потребителем является частью распределения стандартной Кафки. Возможно, это немного ближе к источнику проблемы.

1

Вы не можете создавать разделы внутри потребителя. Разделы создаются при создании темы. Например, с помощью инструмента командной строки:

bin/kafka-topics.sh \ 
    --zookeeper localhost:2181 \ 
    --create --topic myNewTopic \ 
    --partitions 10 \ 
    --replication-factor 3 

Это создает новую тему «myNewTopic» с 10 разделов (пронумерованных от 0 до 9) и репликация фактор 3. (см http://docs.confluent.io/3.0.0/kafka/post-deployment.html#admin-operations и https://kafka.apache.org/documentation.html#quickstart_createtopic)

В вашем потребитель, если вы вызываете assign(), это означает, что вы хотите использовать соответствующий раздел, и этот раздел должен существовать уже.

0

Не знаю, является ли этот ответ по-прежнему актуальным, но в последнее время устранена эта же проблема в брокере VBox VM, недоступном для ОС Windows. Поскольку вы упомянули bootsrap_servers в KafkaConsumer, я предполагаю, что вы используете, по крайней мере Кафка 0.10.0.0

Пожалуйста, обратите внимание на advertised.listeners собственности в server.properties файл и установить его в PLAINTEXT://localhost:9092 или PLAINTEXT://<broker_ip>:9092

Но прежде чем вы что убедитесь, что ваш брокер доступен из среды, в которой работает ваш потребитель (делая ping localhost).

Кроме того, вам необходимо перезапустить kafka-сервер и потребитель/производитель (независимо от того, что работает) и попробовать отправить/получить.

Например, если вы работаете в VM, вы можете, как использовать хост-только адаптер, чтобы брокер достижим от хозяина машины

Примечание: Эта конфигурация работает для Кафки сервера> = 0.10.XX, но не для 0.8.2.X. Не проверено на 0.9.0.X