Apache-Kafka и python на смартфоне, ошибка NoBrokerAvailable - PullRequest
0 голосов
/ 22 марта 2019

У меня есть вопрос по поводу некоторого кода на python, который использует модуль kafka-python, и я действительно не знаю, почему он не работает. После того, как я инициализирую сервер Zookeeper & Kafka с помощью подсказки на странице быстрого запуска и создаю ее по теме на моем компьютере, я пытаюсь запустить следующий код на своем смартфоне, используя Termux:

from json import dumps, loads
from kafka import KafkaProducer, KafkaConsumer

class CommunicationLayer:

def __init__(self, node_id):
self.output_publisher = KafkaProducer(bootstrap_servers=['192.168.1.103:9092'], value_serializer=lambda x:
dumps(x).encode('utf-8'))

self.window_receiver = KafkaConsumer("node_{}".format(node_id), bootstrap_servers=['192.168.1.103:9092'] , value_deserializer=lambda x: loads(x.decode('utf-8')))
...
(code  that doesn't really help)
...

(IP указывает на машину, на которой работает сервер kafka). Как только я запускаю этот код, я получаю ошибку NoBrokerAvailable, которая, насколько я знаю, появляется только тогда, когда вы не инициализировали серверы. Я что-то пропустил?

1 Ответ

0 голосов
/ 22 марта 2019

Я пытаюсь запустить следующий код на моем смартфоне

Примечание. Клиенты Kafka не предназначены для работы в таких средах, где сетевое соединение ненадежно.


IP указывает на машину, на которой работает сервер kafka

Является ли ZooKeeper , а также Кафка выставленным извне на этом аппарате и не только прослушивает локально?

Аналогично, вам нужно установить свойство advertised.listeners в свойствах Kafka, чтобы оно было этим внешним адресом, чтобы любые клиенты могли фактически подключаться после подключения при начальной загрузке.

...