如何将kafka python客户端连接到k8s服务?

时间:2021-03-02 13:29:45

标签: python kubernetes apache-kafka

我在 9092 端口上的 10.zz.yy.xx 上运行了 k8s Kafka 服务。我为 kafka 安装了 python 客户端。所以想试试生产者和消费者是否正常工作。

这里是producer.py

from kafka import KafkaProducer
kafka_host = "10.zz.yy.xx.:9092"
print(kafka_host)

producer = KafkaProducer(bootstrap_servers=kafka_host)
 print("Initialized")
 producer.send('Hello','This is my text')


TOPIC_NAME = 'items'
producer = KafkaProducer(bootstrap_servers=kafka_host)
                          
producer.send(TOPIC_NAME, b'Test Message')
producer.flush()`

这里是consumer.py

from kafka import KafkaConsumer
TOPIC_NAME = 'items'
consumer = KafkaConsumer(TOPIC_NAME)
for message in consumer:
    print(message)

我收到错误:kafka.errors.NoBrokersAvailable: NoBrokersAvailable。 我指的是错误的服务吗?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

您不需要连接到 Zookeper 端口,而是需要连接到 Kafka Broker 端口。 尝试连接到 Zookeper 最终会 kafka.errors.NoBrokersAvailable: NoBrokersAvailable 错误消息。

根据documentation

<块引用>

bootstrap_servers – ‘host[:port]’字符串(或‘host[:port]’字符串列表)消费者应该联系以引导初始集群元数据。这不必是完整的节点列表。 它只需要至少一个代理来响应元数据 API 请求。默认端口为 9092。如果没有指定服务器,将默认为 localhost:9092