9

设置详细信息:我正在本地 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

这给了我一个例外

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 端口?

码头工人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
4

1 回答 1

26

Kafka 容器 OpenWhisk 默认使用集合a 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}})进行交换,您的主题应该可以正常列出。

于 2017-05-17T06:20:22.233 回答