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

标签 google-compute-engine apache-kafka apache-zookeeper

我在谷歌计算引擎上运行我的 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

但是,如果尝试从我的本地机器上进行相同的操作,我会在生产者中得到 kafka.common.FailedToSendMessageException 和 java.net.ConnectException: connection refueed in case of consumer
我尝试通过推送/消费
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。

我已经在计算引擎中配置了下面提到的防火墙规则
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

最佳答案

您必须通过SSH访问云计算VM实例,然后编辑kafka配置文件。

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

取消注释#advertised.listeners=PLAINTEXT://:9092 并替换为advertised.listeners=PLAINTEXT://[instance_public_id_address]:9092

最后一步重启 kafka 服务
sudo /opt/bitnami/ctlscript.sh restart

重要的是要考虑 GCP 计算 VM 的默认 IP 地址是临时的,因此您必须在 Kafka 实例的 GCP 配置面板中将其更改为静态,以避免每次 IP 地址更改时更改配置文件。

关于google-compute-engine - 无法从本地机器连接到谷歌计算引擎上的 kafka 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32811824/

相关文章:

spring - 自定义 spring 属性源无法解析 @Value 中的占位符

tomcat - 带有 tomcat 的 solr 4.8 - 运行 zkcli.sh 时我得到 "Packet len1213486160 is out of range"

php - 通过托管在 Compute Engine 上的 PHP 连接到 Cloud SQL

java - Kafka Streams DSL 到处理器 API 之间有什么区别

java - Kafka Stream 时间戳提取器在 KGroupedStream 处失败

java - Apache Kafka - 是否有可能因错误而丢失消息?

redis - Zookeeper vs 内存数据网格 vs Redis

google-cloud-platform - 在欧洲地区创建了 GCE,但 IP 地址在美国显示

pip - 如何在谷歌计算引擎上安装 pip 模块?

hadoop - 没有用户 'hdfs'的passwd条目