无法从本地计算机连接到google compute engine上的kafka服务器

3df52oht  于 2021-06-08  发布在  Kafka
关注(0)|答案(2)|浏览(527)

我正在谷歌计算引擎上运行zookeeper和kafka服务器。两者都在默认端口上运行(2181上的zookeeper和9092上的kafka)。两者都在同一个示例上运行。我也打开了两个港口。在我的server.properties中,我已配置

zookeeper.connect=<InternalIP>:2181
host.name=localhost

如果我尝试从同一台服务器推送/使用消息,我可以这样做来推送/使用我使用的消息

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
 bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning

但是,如果尝试从本地计算机执行相同操作,我会在producer和java.net.connectexception中得到kafka.common.failedtosendmessageexception:连接被拒绝,以防我尝试通过

bin/kafka-console-producer.sh --broker-list <ExternalIP>:9092 --topic topic1
bin/kafka-console-consumer.sh --zookeeper <ExternalIP>:2181 --topic topic1 --from-beginning

请注意,我可以从本地系统ping外部ip。
我已经在compute engine中配置了下面提到的防火墙规则

Description

kafka port enabled
Network

default
Source filter

Allow from any source (0.0.0.0/0)
Allowed protocols and ports

tcp:9092

描述

zookeeper port enabled
Network

default
Source filter

Allow from any source (0.0.0.0/0)
Allowed protocols and ports

tcp:2181
t3psigkw

t3psigkw1#

您必须通过ssh访问云计算vm示例,然后编辑kafka配置文件。

$ sudo vim /opt/bitnami/kafka/config/server.properties

取消对行#advised.listeners=plaintext://:9092的注解,并替换为advised.listeners=plaintext://[示例\u公共\u id \u地址]:9092
最后一步,重新启动kafka服务

sudo /opt/bitnami/ctlscript.sh restart

重要的是要考虑gcp compute vm的默认ip地址是临时的,因此您必须在kafka示例的gcp配置面板中将其更改为static,以避免每次ip地址更改时都更改配置文件。

dzhpxtsq

dzhpxtsq2#

你配置了防火墙规则吗?你没提,所以我想没有。
从https://cloud.google.com/compute/docs/networks-and-firewalls#firewalls :
默认情况下,来自网络外部的所有传入流量都被阻止,如果没有适当的防火墙规则,任何数据包都不允许进入示例

相关问题