生产者/消费者的Java代码无法在Docker设置中连接kafka

我为kafka(wurstmeister / kafka-docker)构build了一个docker镜像。 在Docker容器内部,我可以使用内置shell脚本创build主题,生成消息并使用消息。 现在我使用https://github.com/mapr-demos/kafka-sample-programs托pipe的代码从我的主机连接到kafka代理。 build立和运行程序后,什么也没有发生,程序stucks。 我想producer.send不能连接到kafka经纪人。 任何帮助表示赞赏

您可以看到该项目中的consumer.propertiesproducer.properties文件都指定了bootstrap.servers=localhost:9092

由于您无法使用localhost:9092连接到docker化的kafka服务,因此您可以尝试查找docker容器的IP地址,例如,使用docker inspect kafka | grep IPA docker inspect kafka | grep IPA (假设您的容器的名称是kafka )。 然后用这两个属性文件中的IP地址replacelocalhost

我正在使用ches / kafka泊坞窗图像。 看看KAFKA_ADVERTISED_HOST_NAME的解释。