Windows使用者的Linux生产者无法解决

问题描述 投票:0回答:1

我正在Windows机器上运行Zookeeper,kafka服务器以及消费者客户端。当我在运行Windows的另一台计算机上使用python或c ++中的简单生产程序时,一切正常。但是,当我在linux机器上使用相同的生产程序时,它不起作用,它指责无法解决。所有计算机都连接在同一网络上。我试图以几种不同的方式在kafka server.properties中设置侦听器和advertised.listeners,但结果相同。

运行带有服务器和使用者的Windows窗口:

IP:192.168.0.149
hostname:something

第二个运行带有生产者程序的Linux或Windows(双启动)的计算机:

IP:192.168.0.150
hostame:somethingelse

在server.properties的一些尝试的配置:

1listeners = PLAINTEXT:\ 0.0.0.0:9092advertised.listeners = PLAINTEXT:\ something:9092

第二台机器的生产者:

producer = KafkaProducer(bootstrap_servers=['192.168.0.149:9092'])

在Windows上有效,在Linux上无效

2listeners = PLAINTEXT:\ localhost:9092advertised.listeners = PLAINTEXT:\ something:9092

第二台机器的生产者:

producer = KafkaProducer(bootstrap_servers=['192.168.0.149:9092'])

在Windows上有效,在Linux上无效

3#listeners =#advertised.listeners =

第二台机器的生产者:

producer = KafkaProducer(bootstrap_servers=['192.168.0.149:9092'])

在Windows上有效,在Linux上无效

4侦听器= PLAINTEXT:\ 192.168.0.149:9092advertised.listeners = PLAINTEXT:\ something:9092

第二台机器的生产者:

producer = KafkaProducer(bootstrap_servers=['192.168.0.149:9092'])

如果使用者通过ip而不是localhost则在Windows上工作,在linux上不工作

apache-kafka kafka-consumer-api kafka-producer-api
1个回答
0
投票

侦听器应始终为0.0.0.0。这是接受所有外部连接的绑定地址

如果要在Windows上运行Kafka,则需要处理Windows防火墙。在测试连接时尝试禁用它。最好将代理切换为在Linux上运行。

仅当两个系统都能够通过DNS名称相互解析时,发布的侦听器才应为主机名。否则,请省去多余的网络跳,并将IP用作播发的侦听器。如果您遇到“无法解决”的问题,则可能是DNS问题,并且ping windows-host也不起作用

要调试您的连接,我建议您使用kafkacat

kafkacat -b kafka-host:9092 -L
© www.soinside.com 2019 - 2024. All rights reserved.