繁体   English   中英

来自 docker 容器的 Kafka 未在偏移资源管理器中显示主题

[英]Kafka from docker container not showing topics in offset explorer

嗨,我在设置 kafka / docker 以显示所有主题时遇到问题,这是用于测试/开发环境的。 我对 Kafka 和 docker 很陌生,所以我的一些术语可能不正确

设置:自定义 Windows 应用程序 - 带有 Kafka / zoo-keeper- 容器 - 偏移资源管理器的 WSL (Debian)。

我在偏移资源管理器中得到一个绿色集群连接,但没有主题:

在此处输入图像描述 我们确实看到了经纪人。

在此处输入图像描述

Docker 容器克隆自: https ://github.com/wurstmeister/kafka-docker/blob/master/README.md

Windows 主机 IP 为 192.168.1.143。

从 windows cmd 我可以看到 WSL 的 IP 为 172.25.224.1。

通过附加到 docker 容器docker exec -t -i 64a637cea4b9 /bin/bash上的 bash shell,我可以运行ifconfig并获取内部 ip 172.18.0.2。

从 docker 容器我​​可以 ping 主机 192.168.1.143。

从 WSL 我可以 ping 容器

从 Windows 主机我可以固定 WSL 172.25.224.1。

从 windows 主机我无法 ping 容器 172.18.0.2。 我不确定这是否相关,但我的蜘蛛感觉对这次 ping 失败有点刺痛。

我对 docker-compose.yml 做了一些修改。

version: '2'
services:
  zookeeper:
    image: wurstmeister/zookeeper
    container_name: zookeeper
    ports:
      - "2181:2181"
    restart: unless-stopped

  kafka:
    container_name: kafka-container
    build: .
    ports:
      - "9092"
    environment:
      DOCKER_API_VERSION: 1.22
      KAFKA_ADVERTISED_HOST_NAME: 192.168.1.143
      AUTO_CREATE_TOPICS_ENABLE: 'true'
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    restart: unless-stopped

我还尝试通过添加来编辑 docker 容器中的两个配置文件 /opt/kafka_2.13-2.8.1/config/server.properties 和 opt/kafka_2.13-2.8.1/config/kraft/server.properties该行:

auto.create.topics.enable=true

当我读到这可能有帮助?

我没有想法,因为偏移浏览器中的连接似乎表明我们有某种形式的连接,但显然不完整。 我对它发生的事情没有很好的理解,所以它可能很简单。 感谢您提供任何可能的帮助!

因此,WSL 和 windows 之间似乎存在网络问题。 最后,我将 kafka 直接安装到 WLS 中,但仍然存在问题。 解决方案是四倍。

  1. 在 WLS 中更喜欢 IV4

    export KAFKA_OPTS="-Djava.net.preferIPv4Stack=True" 我最终把它放在 bin/zookeeper-server-start.sh 和 bin/kafka-server-start.sh 的开头

  2. 通过添加/设置 reg 设置在 Windows 中首选 IPV4

    New-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters" -Name "DisabledComponents" -Value 0x20 -PropertyType "Dword"

或者如果 reg 键已经存在

Set-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters\" -Name "DisabledComponents" -Value 0x20

需要重新启动才能生效。

  1. WLS 端口转发 使用 [这里][1] 中的脚本并修改端口。

  2. 确保 config/server.properties 中的 Advertisementd.hosts.name 设置为等于 ifconfig 返回的 WSL 内部 IP。

在此之后,我可以通过 python 脚本或手动使用 kafkacat 添加我的主题。 [1]: https ://dev.to/vishnumohanrk/wsl-port-forwarding-2e22

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM