无法从单独的 LAN 计算机访问 Kafka Broker

Unable to access Kafka Broker from separate LAN machine

编辑:OBE - 弄明白了。为遇到此问题的任何其他人提供答案。

我在离线环境中工作,无法通过单个交换机在 LAN 连接上从另一台机器 2 连接到机器 1 上的 kafka 代理。

机器1(其中Kafka和ZK是运行ning):

server.properties
listeners=PLAINTEXT://<ethernet_IPv4_m1>:9092
advertised.listeners=PLAINTEXT://<ethernet_IPv4_m1>:9092
zookeeper.connect=localhost:2181

我从 kafka_2.12-2.8.0/config 中的配置文件开始 kafka/ZK,运行 从 kafka_2.12-2.8.0/bin/windows 中选择适当的 .bat

在机器 2 上,我能够 ping <ethernet_IPv4_m1> 并获得结果;但是,如果我 运行 Test-NetConnection <ethernet_IPv4_m1> -p 9092 而 kafka 运行ning 我无法获得 TCP 连接。在 python 3.8.11 中,使用来自 kafka-python 的 KafkaConsumer,我在使用 :9092 作为 bootstrap_server 时收到 NoBrokersAvailable 错误。此外,如果我 运行 一个带有 '/bin/bash' 入口点的 python:3.8.12-buster docker 容器,并按照 kafka-listener 演练进行操作,我将无法连接到经纪人。我所处的情况与 link 中提供的场景 1 完全相同,但演练假定您可以连接到代理。我也尝试在我的 Windows Defender 中为 in/outbound 流量(在两台机器上)打开 9092 端口,但仍然没有成功。 Kafka 和网络都不是我的强项,我发现的每个 tutorial/answer 都是指更改 kafka server.properties 文件中的 listeneradvertised.listener - 我认为我正确地做到了这一点,但不确定。这是我到目前为止所尝试的一切,任何建议将不胜感激。谢谢。

对于 M1,专用网络是活动网络。

转到控制面板 -> 防火墙和网络保护 -> 高级设置(必须是管理员) -> 为活动网络设置 inbound/outbound 端口 9092 规则。