gpt4 book ai didi

networking - 从我的 LAN 外部访问 Kafka 代理

转载 作者:行者123 更新时间:2023-12-05 02:55:40 25 4
gpt4 key购买 nike

我使用下面的默认命令启动了一个普通的 Zookeeper/Kafka 代理,这些在 Kafka documentation 中有描述。在一台机器上(我们称之为机器A)

bin/zookeeper-server-start.sh config/zookeeper.properties
bin/kafka-server-start.sh config/server.properties

这些在机器 A 的 localhost:9092 启动一个代理。

然后我转到位于同一网络上的另一台计算机(我们将其命名为 Machine B)并通过调用它创建 Kafka 提供的默认消费者

bin/kafka-console-consumer.sh --bootstrap-server IP_ADDRESS_HERE:9092 --topic test --from-beginning

其中 IP_ADDRESS_HERE 是托管代理的机器 A 的本地网络中的 IP 地址(例如,192.168.1.10)

一切正常。然后,我尝试从我本地网络之外的一台机器(我们称之为机器 C)访问代理。我转到我的路由器配置,并为托管代理的机器(机器 A)执行端口转发。例如,我执行以下操作

192.168.1.10:9092 --> 9094

意思是我将 192.168.1.10 设备(机器 A)的内部 9092 端口转发到我路由器的 9094 端口。然后我去像 YouGetSignal 这样的服务并检查我的公共(public) IP 地址(例如,97.190.92.128)的端口 9094 是否打开。我收到一条消息,表明该端口确实已打开。

当我尝试使用以下命令从机器 C 中使用机器 A 中的 borker 时

bin/kafka-console-consumer.sh --bootstrap-server PUBLIC_IP_ADDRESS_HERE:9094 --topic test --from-beginning

其中 PUBLIC_IP_ADDRESS_HERE 是机器 A 所在网络的公共(public) IP 地址(例如,97.190.92.128)。但是,我收到无法连接到 192.168.1.10:9092 的错误 - 代理可能不可用(请注意错误中返回了内部 IP:端口,这意味着我的路由器正确提供了信息)

我做错了什么?

最佳答案

您需要更新 server.properties 中的 advertised.listeners 以提供您的客户端 可以解析的主机/IP 和端口组合并连接到。

如您所见,代理发出 192.168.1.10:9092 以响应连接到它的客户端,这对于同一网络上的任何机器(包括机器 B)都可以正常工作.

对于机器 C,代理需要告诉它如何连接到代理,如果我没听错的话是 PUBLIC_IP_ADDRESS_HERE:9094

如果您需要从 LAN 和 WAN 进行连接,则需要两个监听器;一个用于 LAN,一个用于 WAN。在 server.properties 中放置:

listeners=LISTENER_LAN://0.0.0.0:9092,LISTENER_WAN://0.0.0.0:9094
advertised.listeners=LISTENER_LAN://192.168.1.10:9092,LISTENER_WAN://PUBLIC_IP_ADDRESS_HERE:9094
listener.security.protocol.map: LISTENER_LAN:PLAINTEXT,LISTENER_WAN:PLAINTEXT
inter.broker.listener.name=LISTENER_LAN

请注意,您需要更改端口转发,以便代理上的端点是为 LISTENER_WAN (9094) 定义的端口。如果 WAN 连接试图连接到 9092 上的代理,那么它将获得 LISTEN_LAN 详细信息(这是目前正在发生的事情,并且不会起作用)。

引用:https://rmoff.net/2018/08/02/kafka-listeners-explained/

关于networking - 从我的 LAN 外部访问 Kafka 代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61101236/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com