使用脚本时,我不能向Kafka生成数据,但我可以用脚本列出主题

but5z9lq  于 2021-06-07  发布在  Kafka
关注(0)|答案(2)|浏览(449)

各位,在局域网中有一个虚拟服务器,它的ip地址是 192.168.18.230 ,我的机器ip是 192.168.0.175 . 今天,我试着用我的机器( 192.168.0.175 )向我的虚拟服务器发送一些消息( 192.168.18.230 ),Kafka游戏机制作人

$ bin/kafka-console-producer.sh --broker-list 192.168.18.230:9092 --topic test

但有点不对劲。问题描述如下:

[2017-04-10 17:25:40,396] ERROR Error when sending message to topic test with key: null, value: 6 bytes with error: (org.apache.kafka.clients.producer.internals.ErrorLoggingCallback)
org.apache.kafka.common.errors.TimeoutException: Expiring 1 record(s) for test-0 due to 1568 ms has passed since batch creation plus linger time

但是当我使用 kafka-topics 脚本列出主题,它的工作原理是:

$ bin/kafka-topics.sh --list --zookeeper 192.168.18.230:2181

这个问题困扰了我很长一段时间,有谁能帮我解决吗?

6gpjuf90

6gpjuf901#

如果您有一个zookeeper示例正在运行,那么您当然可以询问主题列表。然而,似乎你没有Kafka经纪人可用。
你也许有一个Zookeeper在跑步,但Kafka没有。

bvn4nwqk

bvn4nwqk2#

您的kafka生产者可能正在无法访问运行kafka代理的虚拟机的计算机上运行。
此外,代理端口不仅应该是开放的,而且还必须由代理负责,即您的kafka代理的(公布的)侦听器必须具有您的虚拟机ip(从您的kafka生产者运行的位置可以访问ip,因为vm可以有多个ip,并且没有规则规定所有ip都可以访问)。
例如,您的虚拟机有两个IP 1.2.3.4 以及 4.3.2.1 你的制作人在另一台机器上指向 1.2.3.4 ,您必须首先能够ping和telnet到此ip。
接下来,你必须拥有这个ip 1.2.3.4 在你的Kafka经纪人的广告听众中。

advertised.listeners=PLAINTEXT://1.2.3.4:9092

您应该将此ip设置为您的 bootstrap.servers 你的Kafka制作人。
您还应该确保端口不只是对 localhost 或者 127.0.0.1 比如说,当你 netstat ,它不应该只是 localhost:9092 或者 127.0.0.1:9092 ,它应该使用任何本地地址0.0.0.0或您的ip地址 1.2.3.4:9092

相关问题