docker 容器中的 Kafka 未在偏移量资源管理器中显示主题
Kafka from docker container not showing topics in offset explorer
您好,我在设置 kafka / docker 以显示所有主题时遇到问题,这是用于测试/开发环境。我对 Kafka 和 docker 很陌生,所以我的一些术语可能不适用
设置:
自定义 Windows 应用程序 - WSL (Debian) with Kafka / zoo-keeper- container - Offset explorer.
我在 offset explorer 中获得了绿色集群连接,但没有主题:
不过我们确实看到了经纪人。
Docker 容器克隆自:
https://github.com/wurstmeister/kafka-docker/blob/master/README.md
Windows主机I.P是192.168.1.143.
从windows cmd我可以看到WSL有IP 172.25.224.1.
通过附加到 docker 容器上的 bash shell docker exec -t -i 64a637cea4b9 /bin/bash
我可以 运行 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
我读到这可能有帮助吗?
我没有想法,因为 offset explorer 中的连接似乎表明我们有某种形式的连接,但显然不完整。我不太了解它发生了什么,所以它可能非常简单。感谢您提供任何可能的帮助!
所以 WSL 和 windows 之间似乎存在网络问题。最后,我直接将 kafka 安装到 WLS 中,但仍然有问题。解决方案是四倍。
在WLS中更喜欢IV4
导出 KAFKA_OPTS="-Djava.net.preferIPv4Stack=True"
我最终把它放在 bin/zookeeper-server-start.sh 和 bin/kafka-server-start.sh
的开头
通过添加/设置 reg 设置在 windows 中首选 IPV4
New-ItemProperty“HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters”-名称“DisabledComponents”-值 0x20-PropertyType“Dword”
或者如果注册码已经存在
Set-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters\" -Name "DisabledComponents" -Value 0x20
需要重新启动才能生效。
WLS端口转发
使用 [此处][1] 中的脚本并修改端口。
确保 config/server.properties 中的 advertised.hosts.name 设置为等于 ifconfig 返回的 WSL 内部 IP。
在此之后,我可以通过 python 脚本或手动使用 kafkacat 添加我的主题。
[1]: https://dev.to/vishnumohanrk/wsl-port-forwarding-2e22
您好,我在设置 kafka / docker 以显示所有主题时遇到问题,这是用于测试/开发环境。我对 Kafka 和 docker 很陌生,所以我的一些术语可能不适用
设置: 自定义 Windows 应用程序 - WSL (Debian) with Kafka / zoo-keeper- container - Offset explorer.
我在 offset explorer 中获得了绿色集群连接,但没有主题:
Docker 容器克隆自: https://github.com/wurstmeister/kafka-docker/blob/master/README.md
Windows主机I.P是192.168.1.143.
从windows cmd我可以看到WSL有IP 172.25.224.1.
通过附加到 docker 容器上的 bash shell docker exec -t -i 64a637cea4b9 /bin/bash
我可以 运行 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
我读到这可能有帮助吗?
我没有想法,因为 offset explorer 中的连接似乎表明我们有某种形式的连接,但显然不完整。我不太了解它发生了什么,所以它可能非常简单。感谢您提供任何可能的帮助!
所以 WSL 和 windows 之间似乎存在网络问题。最后,我直接将 kafka 安装到 WLS 中,但仍然有问题。解决方案是四倍。
在WLS中更喜欢IV4
导出 KAFKA_OPTS="-Djava.net.preferIPv4Stack=True" 我最终把它放在 bin/zookeeper-server-start.sh 和 bin/kafka-server-start.sh
的开头通过添加/设置 reg 设置在 windows 中首选 IPV4
New-ItemProperty“HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters”-名称“DisabledComponents”-值 0x20-PropertyType“Dword”
或者如果注册码已经存在
Set-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters\" -Name "DisabledComponents" -Value 0x20
需要重新启动才能生效。
WLS端口转发 使用 [此处][1] 中的脚本并修改端口。
确保 config/server.properties 中的 advertised.hosts.name 设置为等于 ifconfig 返回的 WSL 内部 IP。
在此之后,我可以通过 python 脚本或手动使用 kafkacat 添加我的主题。 [1]: https://dev.to/vishnumohanrk/wsl-port-forwarding-2e22