连接到在WSL2 Ubuntu中运行的Kafka

ubof19bj  于 2022-09-21  发布在  Kafka
关注(0)|答案(1)|浏览(304)

以下是我的Kafka Broker配置

broker.id=1
port=9092
host.name=127.0.0.1
advertised.listeners=PLAINTEXT://127.0.0.1:9092
listeners=PLAINTEXT://127.0.0.1:9092

控制台生产者和消费者工作得很好,但当我尝试通过Java连接时,它抛出了代理不可用错误。但Kafka Broker正在运行,并能够通过控制台生成和消费消息。

Properties props = new Properties();
props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "127.0.0.1:9092");
props.put(ProducerConfig.ACKS_CONFIG, "all");
props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");

KafkaProducer<String, String> producer = new KafkaProducer<String,String>(props);

producer.send(new ProducerRecord<String, String>("Sample","Hey","From java program"));
producer.close();
[kafka-producer-network-thread | producer-1] WARN org.apache.kafka.clients.NetworkClient - [Producer clientId=producer-1] Connection to node -1 (/127.0.0.1:9092) could not be established. Broker may not be available.
[kafka-producer-network-thread | producer-1] WARN org.apache.kafka.clients.NetworkClient - [Producer clientId=producer-1] Bootstrap broker 127.0.0.1:9092 (id: -1 rack: null) disconnected

我正在使用STS IDE编写Java程序,使用JDK 1.8,Kafka 2.8.1 Windows操作系统,使用ubuntu 20.04.4 LTS来执行控制台生产者和消费者。

提前谢谢!

kxkpmulp

kxkpmulp1#

这个回应太晚了,但希望这能帮助一些人。

  • 使用ifconfig或IP Addr或Hostname-i识别WSL2的IP地址
  • 从Windows命令提示符(以管理员身份)运行以下命令
> netsh interface portproxy add v4tov4 listenport=9092 listenaddress=0.0.0.0 connectport=9092 connectaddress=172.X.X.X

172.X.X.X是WSL2的IP

有了这个改变,我就能够访问Kafka集群了。

参考资料link

相关问题