Java 卡夫卡制作人无法通过代码连接

Java 卡夫卡制作人无法通过代码连接,java,apache-kafka,Java,Apache Kafka,我无法通过代码连接到本地运行的Kafka实例-我可以使用Kafka控制台生产者和Kafka控制台消费者成功连接,但当我使用Kafka Java SDK并仅使用Java生产者连接并生成任何消息时,它会失败,并出现以下错误: [Producer clientId=producer-1] Connection to node -1 (localhost/127.0.0.1:9092) could not be established. Broker may not be available. [kaf

我无法通过代码连接到本地运行的Kafka实例-我可以使用Kafka控制台生产者和Kafka控制台消费者成功连接,但当我使用Kafka Java SDK并仅使用Java生产者连接并生成任何消息时,它会失败,并出现以下错误:

[Producer clientId=producer-1] Connection to node -1 (localhost/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 localhost:9092 (id: -1 rack: null) disconnected
[kafka-producer-network-thread | producer-1] WARN org.apache.kafka.clients.NetworkClient - [Producer clientId=producer-1] Connection to node -1 (localhost/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 localhost:9092 (id: -1 rack: null) disconnected
[kafka-producer-network-thread | producer-1] WARN org.apache.kafka.clients.NetworkClient - [Producer clientId=producer-1] Connection to node -1 (localhost/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 localhost:9092 (id: -1 rack: null) disconnected
不确定这是否重要,但我正在Windows和Kafka 2.12-2.5.0上使用WSL2来测试这一点。 如何启用更详细的日志记录并调试它

我的生产者代码片段

Properties properties = new Properties();
properties.setProperty(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092");
properties.setProperty(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName());
properties.setProperty(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName());

ProducerRecord<String, String> record = new ProducerRecord<String, String>("first_topic","first_value");

KafkaProducer<String, String> kafkaProducer = new KafkaProducer<String, String>(properties);
kafkaProducer.send(record);
Properties属性=新属性();
setProperty(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG,“localhost:9092”);
properties.setProperty(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG,StringSerializer.CLASS.getName());
properties.setProperty(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG,StringSerializer.CLASS.getName());
产品记录记录=新产品记录(“第一个主题”、“第一个值”);
KafkaProducer KafkaProducer=新的KafkaProducer(属性);
kafkaProducer.send(记录);

很抱歉出现了误报。我的问题在某种程度上与WSL2有关——我在linux发行版的WSL2中启动了我的ZK和Kafka代理,但错误地试图从运行在Windows中的Java应用程序访问代理


当我尝试从Linux本身运行Java应用程序时。它起作用了

我正在尝试做同样的事情,从windows中的kafka客户端连接到WSL2中运行的kafka实例。我也有类似的错误。但是我没有在wsl2中运行客户端的选项,因为它是一个windows应用程序。有人知道如何修复/配置此场景,以便windows kafka客户端可以连接到wsl2 kafka服务器吗?我也有同样的问题。我只能通过返回wsl1而不是wsl2来修复它。wsl2似乎无法连接到windows localhost。