You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kafka生产者无法连接localhost:9092问题及IPv6解决方法

Kafka生产者连接localhost失败问题及解决方法

问题现象

编写Kafka生产者示例代码时,持续出现连接错误,日志如下:

[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. Node 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] INFO org.apache.kafka.clients.NetworkClient - [Producer clientId=producer-1] Node -1 disconnected.

生产者代码

package io.conduktor.demos.kafka;

import org.apache.kafka.clients.producer.KafkaProducer;
import org.apache.kafka.clients.producer.ProducerRecord;
import org.apache.kafka.common.protocol.types.Field;
import org.apache.kafka.common.serialization.StringSerializer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.Properties;

public class ProducerDemo {

    private static final Logger log = LoggerFactory.getLogger(ProducerDemo.class.getSimpleName());

    public static void main(String[] args) {
        log.info("Hello World!");

        //create Producer Properties
        Properties properties = new Properties();

        //connect to Localhost
        properties.setProperty("bootstrap.servers", "localhost:9092");

        //connect to Conduktor playground
        //properties.setProperty("bootstrap.servers", "cluster.playground.cdkt.io:9092");
        //properties.setProperty("security.protocol", "SASL_SSL");
        //properties.setProperty("sasl.jaas.config", "org.apache.kafka...");
        //properties.setProperty("sasl.mechanism", "PLAIN");

        //set producer properties
        properties.setProperty("key.serializer", StringSerializer.class.getName());
        properties.setProperty("value.serializer", StringSerializer.class.getName());

        //create the Producer
        KafkaProducer<String, String> producer = new KafkaProducer<>(properties);

        //create a producer Record
        ProducerRecord<String, String> producerRecord =
                new ProducerRecord<>("demo_java","hello world");

        //send data
        producer.send(producerRecord);

        //tell the producer to send all data and block until done --synchronous
        producer.flush();

        //flush and close the producer
        producer.close();

    }
}

已尝试的排查操作

  • 修改主机端口
  • 修改节点ID
  • 检查防火墙(未启用)

使用kafka-topics.sh查看主题的结果:

bartello@LAPTOP-K0A7F8UD:~$ kafka-topics.sh --describe --bootstrap-server localhost:9092 --topic demo_java
Topic: demo_java        TopicId: uD7yPEAnQ6iWmQtqbJ-GCg PartitionCount: 1       ReplicationFactor: 1    Configs: segment.bytes=1073741824
        Topic: demo_java        Partition: 0    Leader: 1       Replicas: 1     Isr: 1

解决方法

将代码中bootstrap.servers配置项的localhost替换为[::1],切换至IPv6连接后,问题解决,生产者可正常运行。

内容的提问来源于stack exchange,提问作者Bartello_45

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 14:05:07