我正在尝试将kafka与docker image int *
一起使用
我运行了以下命令
我启动了Docker容器
p
然后我启动了bash命令
&x
然后我创建了一个主题
Landoop/fast-data-dev
然后我尝试将数据发送到主题
docker run --rm -it -p 2183:2181 -p 3030:3030 -p 8081:8081 -p 8082:8082 -p 8083:8083 -p 9093:9092 -e ADV_HOST=127.0.0.1 landoop/fast-data-dev
但是我收到以下错误
[2018-10-27 20:08:24,655]警告[生产者clientId =控制台生产者]无法建立到节点-1的连接。经纪人可能不可用。 (org.apache.kafka.clients.NetworkClient)
ps:由于“端口已分配”问题,我将kafka和zookeeper的映射更改为9093和2183
答案 0 :(得分:0)
您正在容器中运行CLI命令 ,因此您不能只是在主机上重新映射端口。在这种情况下,实际上,您实际上还需要使用totalKeysExamined
变量在运行Kafka的容器内设置端口。
BROKER_PORT
否则,即使外部端口为9093,您仍然必须在容器内使用docker run --rm -it -p 2183:2181 -p 3030:3030 -p 8081:8081 -p 8082:8082 -p 8083:8083 -p 9093:9093 -e ADV_HOST=127.0.0.1 -e BROKER_PORT=9093 landoop/fast-data-dev
,但是如果您要启动,则无论如何您都无需添加localhost:9092
标志来向外部公开端口bash在容器内做事。
如果您想在容器外部使用应用程序 ,请参阅this blog,该应用程序使用Confluent容器,但是适用相同的概念,尽管landoop变量不同