生产者/消费者的java代码无法在docker setup中连接kafka

时间:2017-02-02 16:19:08

标签: docker apache-kafka kafka-consumer-api kafka-producer-api

我为kafka(wurstmeister / kafka-docker)构建了一个docker镜像。在docker容器内部,我能够使用内置shell脚本创建主题,生成消息和使用消息。现在我使用https://github.com/mapr-demos/kafka-sample-programs托管的代码从我的主机连接到kafka代理。在构建和运行程序后,没有任何事情发生,程序卡住了。我猜producer.send无法连接到kafka经纪人。任何帮助表示赞赏

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

我正在使用ches / kafka docker image。看看KAFKA_ADVERTISED_HOST_NAME的解释。