我在本地计算机上设置了 Kafka 和 Zookeeper,并且想使用Kafdrop作为 UI。我尝试使用下面的 docker 命令运行:
docker run -d --rm -p 9000:9000 \
-e KAFKA_BROKERCONNECT=<localhost:9092> \
-e JVM_OPTS="-Xms32M -Xmx64M" \
-e SERVER_SERVLET_CONTEXTPATH="/" \
obsidiandynamics/kafdrop
Run Code Online (Sandbox Code Playgroud)
我得到-bash: https://locahost:9092: No such file or directory
当我删除KAFKA_BROKERCONNECT参数时,应用程序运行,但出现以下错误:
[AdminClient clientId=kafdrop-admin] Connection to node -1 (localhost/127.0.0.1:9092) could not be established. Broker may not be available.
2020-07-22 09:39:29.108 WARN 1 [| kafdrop-admin] o.a.k.c.NetworkClient
Run Code Online (Sandbox Code Playgroud)
我确实将 Kafka 服务器的侦听器设置设置为此,但没有帮助。
listeners=PLAINTEXT://localhost:9092
我在 GitHub 上发现了类似的问题,但无法理解大多数答案。
Kafka 不是基于 HTTP 的。您不需要模式协议来连接到 Kafka,也不需要使用尖括号。
您也不能使用localhost,因为那是 Kafdrop 容器,而不是 Kafka。
我建议您将Docker Compose 与 Kafdrop 和 Kafka 一起使用