首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从局域网外部访问Kafka broker

从局域网外部访问Kafka broker
EN

Stack Overflow用户
提问于 2020-04-08 12:57:38
回答 1查看 2.9K关注 0票数 3

我使用下面的默认命令启动了一个普通的动物园管理员/Kafka代理程序,因为这些命令在一台机器中的Kafka文献中被描述了(让我们称它为机器A)

代码语言:javascript
复制
bin/zookeeper-server-start.sh config/zookeeper.properties
bin/kafka-server-start.sh config/server.properties

它们在机器A的localhost:9092启动一个代理程序。

然后,我转到另一台计算机(让我们称它为Machine ),它位于同一网络上,并通过调用以下命令创建了卡夫卡提供的默认消费者

代码语言:javascript
复制
bin/kafka-console-consumer.sh --bootstrap-server IP_ADDRESS_HERE:9092 --topic test --from-beginning

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

一切都很好。然后,我尝试从本地网络之外的机器访问代理(让我们称之为Machine )。我进入路由器配置,并为驻留代理的机器(机器A)进行端口转发。例如,我执行以下操作

代码语言:javascript
复制
192.168.1.10:9092 --> 9094

这意味着我将192.168.1.10设备(机器A)的内部9092端口转发到我的路由器的端口9094。然后,我转到像YouGetSignal这样的服务,检查我的公共 IP地址(例如97.190.92.128)的端口9094是否打开。我收到一个信息,港口确实是开放的。

当我尝试使用机器A中的borker时,请使用下面的命令

代码语言:javascript
复制
bin/kafka-console-consumer.sh --bootstrap-server PUBLIC_IP_ADDRESS_HERE:9094 --topic test --from-beginning

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

我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-08 13:59:57

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

正如您所观察到的,代理发出192.168.1.10:9092是为了响应连接到它的客户端,这对于同一网络上的任何机器(包括机器B)都会很好地工作。

对于Machine,代理需要告诉它如何连接到代理,如果我正确的话,它就是PUBLIC_IP_ADDRESS_HERE:9094

如果您需要同时从LAN和WAN连接,则需要两个侦听器;一个用于LAN,一个用于WAN。在server.properties中:

代码语言:javascript
复制
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)定义的端口。如果一个广域网连接试图在9092上连接到代理,那么它将获得LISTEN_LAN的详细信息(这是目前正在发生的事情,不能工作)。

参考文献:https://rmoff.net/2018/08/02/kafka-listeners-explained/

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61101236

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档