智能手机上的 Apache-Kafka 和 python,NoBrokerAvailable 错误

Apache-Kafka and python on smartphone, NoBrokerAvailable Error

我对 python 中使用 kafka-python 模块的一些代码有疑问,我真的不知道为什么它不起作用。在我使用 quickstart page 建议初始化 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 错误,据我所知,该错误仅在您尚未初始化服务器时出现。我错过了什么吗?

I try to run the following code on my smartphone

注意:Kafka 客户端不适合 运行 在网络连接不可靠的环境中。


The IP points to the machine that runs the kafka server

ZooKeeper 和 Kafka 是否在这台机器上 外部 公开并且不仅在本地监听?

同样,您需要将 Kafka 属性中的 advertised.listeners 属性 设置为此外部地址,以便任何客户端能够在 bootstrap 连接后实际连接。