我使用bitnami / kafka docker模板创建了一个kafka设置。多次重新创建容器后(我无法在9092上连接到Kafka),我终于使集群启动并运行。我相信这些问题是由于Docker安装在Windows而非Linux上造成的。
我当前的问题是,我无法使用kafka-python库和以下代码来使用任何消息:
from kafka import KafkaConsumer
from kafka import TopicPartition
print('Making connection.')
consumer = KafkaConsumer(bootstrap_servers='localhost:9092')
print('Assigning Topic.')
consumer.assign([TopicPartition('linuxhint', 2)])
print('Getting message.')
for message in consumer:
print("OFFSET: " + str(message[0])+ "\t MSG: " + str(message))
代码不会失败。它显示“正在获取消息”行,并且没有完成。我尝试使用Conduktor应用程序使用同一主题,但我也做不到。 Conduktor甚至无法读取主题的数量和大小。我该如何解决?老实说,我没有任何线索。
Windows和Docker都是问题。缺少完整的Kafka配置。
您需要适当地配置KAFKA_CFG_ADVERTISED_LISTENERS
,并在Docker命令中公开正确的端口。
https://github.com/bitnami/bitnami-docker-kafka#accessing-kafka-with-internal-and-external-clients