设置详细信息: 我正在本地ubuntu(16.04)vm上设置openwhisk。在此设置中,kafka在一个docker中运行,而zookeeper在另一个docker中运行。
我使用cmd连接到kafka docker
sudo docker exec -it <container id> sh
连接后,我将执行以下命令以获取主题列表
bin/kafka-topics.sh --list --zookeeper localhost:2181
这给了我一个异常(exception)
Error: Exception thrown by the agent : java.rmi.server.ExportException: Port already in use: 7203; nested exception is:
java.net.BindException: Address already in use
我不明白为什么要尝试使用7203端口?
docker ps输出
83eba3961247 ches/kafka:0.10.0.1 "/start.sh"
11 days ago Up 23 hours 7203/tcp, 0.0.0.0:9092->9092/tcp
kafka
947fa689a7ef zookeeper:3.4 "/docker-
entrypoin..." 11 days ago Up 23 hours 2888/tcp,
0.0.0.0:2181->2181/tcp, 3888/tcp zookeeper
Best Answer-推荐答案
默认情况下,Kafka container OpenWhisk is using设置一个JMX_PORT 。那就是您所看到的7203端口。要使脚本正常工作,您需要取消设置该环境设置:
unset JMX_PORT; bin/kafka-topics.sh --list --zookeeper localhost:2181
但是请注意,localhost 对您的zookeeper实例不是有效地址,因为它引用当前容器的本地主机,而不是Zookeeper。如果您将localhost 与VM的外部IP或zookeeper容器的IP(通过docker inspect zookeeper --format {{.NetworkSettings.Networks.bridge.IPAddress}} 获取)进行交换,则您的主题应该会很好地列出。
关于docker - 无法在openwhisk设置中列出kafka主题,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/44016688/
|