【问题标题】:Unable to list kafka topics in openwhisk setup无法在 openwhisk 设置中列出 kafka 主题
【发布时间】:2017-10-16 10:25:17
【问题描述】:

设置详情: 我正在本地 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 端口?

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

【问题讨论】:

    标签: docker apache-kafka openwhisk


    【解决方案1】:

    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}} 获取),您的主题应该可以正常列出。

    【讨论】:

    • 谢谢它的工作。还有一个问题,JMX_PORT 的取消设置会以任何方式影响 openwhisk 设置的工作吗?
    • 不,不会的。无论如何,它只与您的单个调用相关,并且 OpenWhisk 中的设置根本不使用来自 Kafka 的 JMX。
    • echo $JMX_PORT :检查 JMX 使用的端口号是什么。 export JMX_PORT=NEW_PORT_NUMBER :分配新的端口号。
    猜你喜欢
    • 1970-01-01
    • 2019-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-19
    • 2018-07-02
    • 1970-01-01
    • 2017-08-12
    相关资源
    最近更新 更多