无法通过Java应用连接到Kafka,但可以通过我的计算机连接

时间:2020-11-08 14:12:56

标签: java intellij-idea apache-kafka kafka-producer-api

我的设置: 因此,我刚刚完成了一个在VM上运行且地址为192.168.0.100的kafka实例的配置。我可以使用kafka-consome-consumer.sh从同一VM连接到该实例,也可以使用hostkafkatool计算机(VM外部)连接到该实例。

enter image description here

我的问题:我现在正尝试使用Java(在host上使用IntellijIDEA)向实例生成消息,但是该应用无法连接。我收到以下错误:

Topic ABC not present in metadata after 60000 ms.

这是我的Kafka server.properties地址配置:

############################# Socket Server Settings #############################
listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://192.168.0.100:9092

这是我的生产者代码:

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

        Producer<String, String> producer = new KafkaProducer<String, String>(properties);
        ProducerRecord<String, String> record = new ProducerRecord<String, String>("trucks_GPS", "Hello from a JAVA app");

        producer.send(record, new Callback() {
            public void onCompletion(RecordMetadata recordMetadata, Exception e) {
                if(e != null){
                    System.out.println(e.getMessage());
                }
                else{
                    System.out.println("success");
                }
            }
        });

        producer.flush();
        producer.close();

确切的错误日志要求 org.apache.kafka.common.errors.TimeoutException: Topic trucks_GPS not present in metadata after 60000 ms.

0 个答案:

没有答案